2017-10-16 28 views
0

J'utilise google langage naturel pour détecter le sentiment de l'entité, l'envoi d'appel ajax à https://language.googleapis.com/v1/documents:analyzeEntitySentiment renvoie toujours erreur 400, mon appel ajax est comme ci-dessous,L'API REST Google en langage naturel renvoie l'erreur 400 La charge utile JSON non valide a été reçue. Nom inconnu "Document ": "

{

APIKEY = '**********************';

$.ajax({ 
     type  : "POST", 
     url   : "https://language.googleapis.com/v1/documents:analyzeEntitySentiment?key="+APIKEY, 
     ContentType : "application/json", 
     data  : { 
         "document": JSON.stringify(
             { "type":"PLAIN_TEXT", 
              "content":"Nature is so beautiful" 
             }), 
         "encodingType":"UTF8" 
        }, 
     success  : function(_result){ 

      if (_result) {  
       alert('SUCCESS'); 
      }else{ 
       alert('ERROR'); 
      } 
     }, 
     error  : function(_result){ 
      alert(_result); 
     } 
    }); 

et erreur:

"code": 400, 
"message": "Invalid JSON payload received. Unknown name \"document\": Cannot bind query parameter. 'document' is a message type. Parameters can only be bound to primitive types.", 

"status": "INVALID_ARGUMENT", 

"details": [ 
    { 

    "@type": "type.googleapis.com/google.rpc.BadRequest", 
    "fieldViolations": [ 
     { 
     "description": "Invalid JSON payload received. Unknown name \"document\": Cannot bind query parameter. 'document' is a message type. Parameters can only be bound to primitive types." 
     } 
    ] 
    } 
] 

comme mentionné dans docu "document" doit être utilisé comme données de corps de requête.

Merci d'avance!

Répondre

1

Supprimez l'appel JSON.Stringify sur le document. Votre charge utile est déjà au format chaîne.

data  : { 
        "document": { "type":"PLAIN_TEXT", 
             "content":"Nature is so beautiful" 
            }, 
        "encodingType":"UTF8" 
       },