前提・実現したいこと
チャットワークAPI webhookを利用して、
GASでルームイベント取得をするコードを書いています。
doPost(e)内で、チャットワークwebhookから送られてくるe.postData.contentsを取得して、
スプレッドシートに書き込ませようとしたところe.postData.contentsの内容がundefinedで返ってくることが頻繁にあります。
(数回に一回はe.postData.contentsの内容が取得できます)
どうしたらe.postData.contentsを安定的に取得できるでしょうか。
発生している問題・エラーメッセージ
GASプロジェクトをGCPに繋げてエラーログを取得したところ以下のように返ってきました
[SyntaxError: Unexpected token u in JSON at position 0]
該当のソースコード
GAS(JavaScript)
1const ss = SpreadsheetApp.getActiveSpreadsheet(); 2const sheet = ss.getSheetByName('sheet 1'); 3 4function doPost(e) { 5 try { 6 sheet.getRange("A1").setValue(e.postData.contents); 7 } 8 catch (e) { console.log(e) } //GCPでエラーログを確認するため 9}
試したこと
①doPostのエラー内容を取得するためにGCPとつないでエラーログを取得してみました。
②チャットワークからテスト投稿を繰り返して、
10回の内、数回はe.postData.contentsの内容が正常に取得されていることを確認しました
なぜe.postData.contentsがundefinedで返ってくるときもあるのか、正常に取得できるときもあるのか理由がわからずスタックしています
補足情報(FW/ツールのバージョンなど)
チャットワーク API リファレンス https://developer.chatwork.com/ja/webhook.html
あなたの回答
tips
プレビュー