Использование 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")