GoogleスプレッドシートでNatural Language APIリクエストする際、エラー: 400が発生する
初心者のため、説明の要領が得ない点が多々あるかと思います。
ご指摘いただければ幸いです。
ITFFFを使い、キーワードを含むツイートをgoogleスプレッドシートに自動転記しております。
スプレッドシートに入力されているツイートの感情分析ができればと思い、
こちらのページ(https://qiita.com/TakeshiNickOsanai/items/84cdd0da017a5d5d56b9)を参照し
初めてGASに触れましたが、Exception: https://language.googleapis.com のリクエストに失敗しました(エラー: 400)。というエラーが発生し、にっちもさっちもいかなくなってしまいました。
下記、ご参照いただき、ご助言いただければ幸いです。
よろしくお願い申し上げます。
発生している問題・エラーメッセージ
Exception: https://language.googleapis.com のリクエストに失敗しました(エラー: 400)。サーバー応答の一部: { "error": { "code": 400, "message": "One of content, or gcs_content_uri must be set.", "status": "INVALID_ARGUMENT", "details": ...(応答の全文を見るには muteHttpExceptions オプションを使用してください) at retrieveSentiment(retrieveSentiment:28:30)
該当のソースコード
【retrieveSentiment】 function retrieveSentiment (textData) { var apiKey = 'XXXXX'; var apiEndpoint = 'https://language.googleapis.com/v1/documents:analyzeSentiment?key=' + apiKey; // Create a structure with the text, its language, its type, // and its encoding var docDetails = { language: 'ja-jp', type: 'PLAIN_TEXT', content: textData }; var nlData = { document: docDetails, encodingType: 'UTF8' }; // Package all of the options and the data together for the call var nlOptions = { method : 'post', contentType: 'application/json', payload : JSON.stringify(nlData) }; // And make the call var response = UrlFetchApp.fetch(apiEndpoint, nlOptions); Logger.log('json is :' + response) return response; } 【getSentiment】 // 取得したい開始行と終了行を記述 var start = '2'; var end = '1000'; // シート情報取得 var mySheet = SpreadsheetApp.openById('XXXXX').getSheetByName('XXXXX'); function getSentiment() { // 開始行と終了行でループを回す for (i = start; i <= end; i++) { var tweet = mySheet.getRange(i, 1).getValue(); var response = retrieveSentiment(tweet); var json = JSON.parse(response); var score = json['documentSentiment']['score']; var magnitude = json['documentSentiment']['magnitude']; // 取得したScore Magnitudee,Jsonをシートに記述 mySheet.getRange(i, 2).setValue(score); mySheet.getRange(i, 3).setValue(magnitude); mySheet.getRange(i, 4).setValue(response); } }
試したこと
ネットで検索を行いましたが、おそらく私の理解度が足りないためか問題点が分かりませんでした。
現在勉強中でございますが、皆さまのお知恵をお貸しいただければ幸いです。
よろしくお願い申し上げます。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
あなたの回答
tips
プレビュー