0

J'essaie de publier des données dans l'API Google Vision. Butt je reçois toujours 400 code de réponse - mauvaise demande. Je n'ai pas d'idées déjà.API Google Vision

j'ai lu et essayé d'utiliser ces liens:

https://cloud.google.com/vision/docs/requests-and-responses https://cloud.google.com/vision/docs/detecting-text https://developers.google.com/apis-explorer/?hl=ru#p/vision/v1/vision.images.annotate

Et je suis venu à ceci:

Voici mes données à publier:

var dataToSend = { 
     "requests": [ 
      { 
       "image": { 
        "content": imageData 
       }, 
       "features": [ 
        { 
         "type": "TYPE_UNSPECIFIED", 
         "maxResults": 50 
        }, 
        { 
         "type": "LANDMARK_DETECTION", 
         "maxResults": 50 
        }, 
        { 
         "type": "FACE_DETECTION", 
         "maxResults": 50 
        }, 
        { 
         "type": "LOGO_DETECTION", 
         "maxResults": 50 
        }, 
        { 
         "type": "LABEL_DETECTION", 
         "maxResults": 50 
        }, 
        { 
         "type": "TEXT_DETECTION", 
         "maxResults": 50 
        }, 
        { 
         "type": "SAFE_SEARCH_DETECTION", 
         "maxResults": 50 
        }, 
        { 
         "type": "IMAGE_PROPERTIES", 
         "maxResults": 50 
        } 
       ] 
      } 
     ] 
    }; 

Et voici mon post:

$.ajax({ 
     url: "https://vision.googleapis.com/v1/images:annotate?fields=responses&key={MY CREATED KEY}", 
     type: "POST", 
     data: dataToSend, 
     success: function (reponse) { 
      console.log(reponse); 
     }, 
    }); 

Voici les données de la console (LE CONTENU EST VIDE PAR EXEMPLE (ne pas publier base64 Wole)):

enter image description here

Et voici la réponse:

{ 
    "error": { 
    "code": 400, 
    "message": "Invalid JSON payload received. Unknown name \"requests[0][features][0][type]\": Cannot bind query parameter. Field 'requests[0][features][0][type]' could not be found in request message.\nInvalid JSON payload received. Unknown name \"requests[0][features][0][maxResults]\": Cannot bind query parameter. Field 'requests[0][features][0][maxResults]' could not be found in request message.\nInvalid JSON payload received. Unknown name \"requests[0][image][content]\": Cannot bind query parameter. Field 'requests[0][image][content]' could not be found in request message.", 
    "status": "INVALID_ARGUMENT", 
    "details": [ 
     { 
     "@type": "type.googleapis.com/google.rpc.BadRequest", 
     "fieldViolations": [ 
      { 
      "description": "Invalid JSON payload received. Unknown name \"requests[0][features][0][type]\": Cannot bind query parameter. Field 'requests[0][features][0][type]' could not be found in request message." 
      }, 
      { 
      "description": "Invalid JSON payload received. Unknown name \"requests[0][features][0][maxResults]\": Cannot bind query parameter. Field 'requests[0][features][0][maxResults]' could not be found in request message." 
      }, 
      { 
      "description": "Invalid JSON payload received. Unknown name \"requests[0][image][content]\": Cannot bind query parameter. Field 'requests[0][image][content]' could not be found in request message." 
      } 
     ] 
     } 
    ] 
    } 
} 

Où est mon erreur ici?

+0

avez-vous converti l'image en format base 64 –

Répondre

0

J'ai donc trouvé quel était le problème. Ma photo a dépassé la limite de taille de données qui est d'environ 4 Mo

0

Yahh, vous pouvez également réduire la taille de la photo existante que vous avez. Pour cela, il existe des outils disponibles que vous pouvez utiliser. Ils fournissent une taille réduite de la photographie afin que votre vision api puisse donner un résultat précis. J'ai utilisé imagix qui fournissent réduire la taille et vous pouvez également fournir la taille de pixel comme 500 * 500.

0

Il peut nécessiter le traitement suivant.

var dataToSend = JSON.stringify ({votre json});