前提・実現したいこと
GASを使用して、電車遅延情報のLINE BOTを作りたいです。
数日前、インターンシップで同じ機能のSlack BOTを作ったため、そのコードを活用してLINE BOTを作ろうと思いました。
独学の上にGASを使用した経験が浅く、おそらくSlack用からLINE用にする過程でエラーが出たと推測しています。
発生している問題・エラーメッセージ
Exception: https://api.line.me のリクエストに失敗しました(エラー: 400)。サーバー応答の一部: {"message":"The request body has 2 error(s)","details":[{"message":"May not be empty","property":"messages"},{"message":"May not be empty","propert...(応答の全文を見るには muteHttpExceptions オプションを使用してください)(行 70、ファイル「コード」)
上記のようなエラーメッセージが表示されるものの、個人では何が原因で発生しているのか特定できず、原因と改善方法を教えていただきたいです。
該当のソースコード
(java script使用)
var ACCESS_TOKEN = '****' function myFunction() { //Yahoo路線情報のURLを設定 var yahoo_url = "https://transit.yahoo.co.jp/traininfo/area/4/"; //情報取得 var contents = UrlFetchApp.fetch(yahoo_url).getContentText(); //更新時刻が読み取れるように設定 var myRegexp = /<span class="subText">([\s\S]*?)</i; //null以外ならtimeに、nullなら""にする var time = (myRegexp.exec(contents)!= null)?myRegexp.exec(contents):["",""]; //路線が読み取れるように設定 var myRegexp = /<div class="elmTblLstLine trouble">([\s\S]*?)#mdStatusTroubleLine/i; //ざっくり抽出 var regexp = myRegexp.exec(contents); //成功した場合 if(regexp != null){ var result = []; var regexp2 = []; //路線情報が読み取れるよう設定 var myRegexp2 = /">([\s\S]*?)</g; //regexp2に路線情報を入れる while((regexp2 = myRegexp2.exec(regexp[1])) != null){ //遅延情報がある場合、情報取得後データを配列に追加 if(regexp2[1] != "[!]"){ result.push(regexp2[1]); } } } //配列にデータがある場合、件数カウント、表示用に切り替え if(result != null){ var counts = result.length/ 2; var postdate = ""; for(i = 0;i<counts ;i++){ postdate += result[i*2] + ":" + result[i*2+1] + "\n"; } }else{ //無かった場合 var postdate = "現在、事故・遅延に関する情報はありません"; } //送信するメッセージの設定 var message = { "text":"Yahoo路線情報" + "\n" + postdate + "\n" + time[1] + "\n" + "https://transit.yahoo.co.jp/traininfo/area/4/" }; // 送信のための諸準備 const replyData = { "method": "post", "headers": { "Content-Type": "application/json", "Authorization": "Bearer " + ACCESS_TOKEN }, "payload":JSON.stringify(message) }; UrlFetchApp.fetch("https://api.line.me/v2/bot/message/push",replyData); }
試したこと
・当初出ていた401エラーの解決のために似たような質問を探し、該当部分のコード(送信のための諸準備以降)を修正⇒400エラーに変化
・全体を確認しなおし不要だと思われる「,」を削除⇒400エラーが3つから2つに
・パソコン、chromeを再起動⇒変化なし
回答1件
あなたの回答
tips
プレビュー