API Google Cloud Language выдает ошибку «Запрос содержит неверный аргумент» (400) - PullRequest
5 голосов
/ 06 октября 2019

Попытка использовать метод documents.analyzeSentiment в API НЛП, но выдает ошибку, указывающую, что аргумент недействителен.

Представляется следующая ошибка:

{error = {code = 400, message = Request содержит недопустимый аргумент., Status = INVALID_ARGUMENT}}

Это то, что я пробую в скрипте приложений -

function analyzeText() {

  var apiKey = 'MyAPIKeyViaCloudConsole'

  var text = "I love R&B music. Marvin Gaye is the best. 'What's Going On' is one of my favorite songs. It was so sad when Marvin Gaye died.";

  var requestUrl = 'https://language.googleapis.com/v1/documents:analyzeSentiment?key=' + apiKey;

  var data = {
    "document": {
      "language": "en",
      "content": text
    },
    "encodingType": "UTF8"
  };

  var options = {
    method : "POST",
    contentType: "application/json",
    payload : JSON.stringify(data),
    muteHttpExceptions: true
  };

  var response = UrlFetchApp.fetch(requestUrl, options);

  var data = JSON.parse(response);

  Logger.log(data);

}

По сути, я намереваюсь провести какой-то анализ настроений по целому ряду вещей (замечания клиентов, некоторые твиты и т. Д.), Которые я рассмотрю в пакетах, как только получу код дляработа.

Что я делаю не так ?? (

1 Ответ

6 голосов
/ 06 октября 2019

Похоже, вам потребуется указать "тип" в ваших данных param + Я также обновил "язык" из плана en до en-us .

Попробуйте это -

function analyzeText() {

  var apiKey = 'YourAPIKey'

  var text = "Random Text as required";

  var requestUrl = 'https://language.googleapis.com/v1/documents:analyzeSentiment?key=' + apiKey;

  var data = {
    "document": {
      "language": "en-us",
      "type": "PLAIN_TEXT",
      "content": text
    },
    "encodingType": "UTF8"
  };

  var options = {
    method : "POST",
    contentType: "application/json",
    payload : JSON.stringify(data),
    muteHttpExceptions: true
  };

  var response = UrlFetchApp.fetch(requestUrl, options);

  var data = JSON.parse(response);

  Logger.log(data);

}

Очевидно, что в зависимости от вашего варианта использования вы можете захотеть выполнить итерацию пакетатекст через цикл for.

Кроме того, убедитесь, что у вашего проекта консоли Google Cloud есть платежная учетная запись, связанная с ним для запуска API Natural Language.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...