Возникла проблема с запуском анализа настроений в google sheet с использованием скрипта через Google nlp - PullRequest
0 голосов
/ 26 апреля 2019

Использование API естественного языка из Google Sheet с использованием скрипта Google не может быть выполнено из-за следующих ошибок:

Запрос не выполнен для https://language.googleapis.com/v1/documents:analyzeSentiment?key=AIzaSyBHpaU0RSVpXZkPi2i2uKz9xxxxx возвращенного кода 400. Сокращенный ответ сервера: {"ошибка ": {" code ": 400," message ":" Должно быть установлено одно из содержимого или gcs_content_uri. "," status ":" INVALID_ARGUMENT "," details ": ... (используйте параметр muteHttpExceptions для проверки полного ответа)) (строка 65, файл «Код»)

function onOpen() {
  var ui = SpreadsheetApp.getUi();

  ui.createMenu('Review Analysis Tools')
    .addItem('Analyze Sentiment', 'analyzeSentiment')
    .addToUi();
}

function analyzeSentiment() {

    var ss = SpreadsheetApp.getActiveSpreadsheet();
    var sheet = ss.getActiveSheet();

    var startRow = 2;
    var startColumn = 1;
    var numColumns = sheet.getLastColumn();
    var numRows = sheet.getLastRow();


    //Get the number of rows
    var dataRange = sheet.getRange(startRow,startColumn,numRows-1,numColumns);
    var data = dataRange.getValues();
    for (var i = 0; i < data.length; ++i) {
      var row = data[i];
      var review = row[3]; //review column

      //Invoke the retrieveSentiment method
      var score = retrieveSentiment(review);

      //Find the cell in the row (5th column) to insert the Sentiment score.
      var range = sheet.getRange(startRow+i,numColumns);
      //range.setValue(score);
      if (score < 0) {
        range.setBackground("RED");
      } else if (score > 0) {
        range.setBackground("GREEN");
      } else {
        range.setBackground("YELLOW");
    }
    }
}

function retrieveSentiment (line) {
  var apiKey = "";
  var apiEndpoint = 'https://language.googleapis.com/v1/documents:analyzeSentiment?key=' + apiKey;


  var reviewData = {
    language: 'en-us',
    type: 'PLAIN_TEXT',
    content: line
  };

  var nlData = {
    document: reviewData,
    encodingType: 'UTF8'
  };

  var nlOptions = {
    method : 'post',
    contentType: 'application/json',
    payload : JSON.stringify(nlData)
  }

  var response = UrlFetchApp.fetch(apiEndpoint, nlOptions);
  var data = JSON.parse(response);

  var sentiment = 0.0;
  if (data && data.documentSentiment && data.documentSentiment.score){
     sentiment = data.documentSentiment.score;
  }

  return sentiment;
}

Request failed for https://language.googleapis.com/v1/documents:analyzeSentiment?key=AIzaSyBHpaU0RSVpXZkPi2i2uKz92bsGS8zbDQE returned code 400. Truncated server response: { "error": { "code": 400, "message": "One of content, or gcs_content_uri must be set.", "status": "INVALID_ARGUMENT", "details": ... (use muteHttpExceptions option to examine full response) (line 65, file "Code")
...