現在、あるゲームの進行役として、google app scriptを使用しLINEbotを作成しています。
ゲームの特徴として、ゲームを開始すると、gasが動き、新しいスプレットシートが作成され、スコアが刻まれます。
そこでそのbotを使用してゲームをしているといきなり返信が無くなりました。
以前にも全く返信がなくなったことがあり、コードが問題かと思って見直しましたが、問題なく、新しくbotを作り直してコードを動かすと正常に動きました。通常は既読は絶対つくのですが、その際は既読すらつかなくなっていました。
今回の2回目は既読がつきますが、返信がない状態です。
自分が考える問題点?
・メッセージの送りすぎ?→200~300ほどしか送信していない
・コードが問題?→コードを全く一緒で、botを作り直したら動作したためコードは問題ない
・webhookは正しく通っている?→成功メッセージが通っている。
このような状態で、全く原因がわからない状態です。
本日、夕方ごろに使用しており、いきなり返信が無くなりました。
その夜に、グループIDを変え、もう一度試してみると、メッセージが一通だけきました。
しかし、メッセージが二通連続でくるはずが、一通のみ送信され、二通目は全く来ず、その後、全く返信が無くなるようになりました。ちなみに、夕方使用していた場所とは違うメッセージで返信が来なくなりました。
しかし、スプレッドシートの処理は正しく動いていたことから、原因はLINEであることが推測されます。
何度も何度も、同じプログラムで動作してゲームを進行させており、いきなり途中で返信が無くなるということが理解できず、困っています。まだ、一度の返信が無くなるだけならいいのですが、その後、一回も返信することがなくなる現象も意味が理解できませんし、時間を空けると一通だけ返信が来るのも理解できません。
一応、送信部分のソースコードだけ載せておきます。
javascript
1//LINE Developersで取得したアクセストークンを入れる 2var CHANNEL_ACCESS_TOKEN = ''; 3var url = 'https://api.line.me/v2/bot/message/push'; 4var groupID = ''; 5const OutputFolder = DriveApp.getFolderById(''); //保存するフォルダ指定 6 7 8 9 10//ポストで送られてくるので、送られてきたJSONをパース 11function doPost(e) { 12 var json = JSON.parse(e.postData.contents); 13 14 //返信するためのトークン取得 15 var reply_token= json.events[0].replyToken; 16 if (typeof reply_token === 'undefined') { 17 return; 18 } 19 20 21 let message=json.events[0].message.text; //送られたメッセージ内容を取得 22 23 if (message=='ゲーム開始'){ 24 var date = new Date();//現在時刻取得 25 date = Utilities.formatDate(date, "Asia/Tokyo", "ゲームを開始しました yyyy/MM/dd hh時mm分"); 26 send_message(date)//ゲームを開始した旨を送信 27 create_spreadsheet()//新しくスプレッドシートを作成 28 send_message('1チーム目の名前を入力してください。') 29 } 30 31function send_message(message){ 32UrlFetchApp.fetch(url, { 33 'headers': { 34 'Content-Type': 'application/json; charset=UTF-8', 35 'Authorization': 'Bearer ' + CHANNEL_ACCESS_TOKEN, 36 }, 37 'method': 'POST', 38 'payload': JSON.stringify({ 39 'to': groupID, 40 'messages':[{ 41 'type': 'text', 42 "text" : message, 43 }] 44 }) 45 }) 46}
その夜に返信が一通だけ返ってきました、と言っていたのは、
send_message(date)//ゲームを開始した旨を送信
のことです。
しかし、その下の
create_spreadsheet()//新しくスプレッドシートを作成
は完全に作成されており、
send_message('1チーム目の名前を入力してください。')
が送信されませんでした。
ちなみに普段は当たり前のように送信されており、この後、一切のメッセージが送信されなくなっています。
返信に制限があると考えるのが一番筋が通っていそうなのですが、どなたか解消方法ご存知の方いらっしゃいませんか?
以上、よろしくお願いいたします。

回答2件
あなたの回答
tips
プレビュー