前提・実現したいこと
現在、GASとチャットワークWebhookで即レスポンスのおみくじチャットを作る方法を参考に進めています。
理想:チャットワークのマイチャット上で「おみくじ」に反応して「おみくじ結果」が返ってくること
- doPost(e) のデバッグ方法(?)が分かるだけでも嬉しいです。
- この参考サイトを実際にやってみて「私はできました/できませんでした」だけでもありがたいです。
発生している問題・エラーメッセージ
どこがエラーなのかわかっていないのが現状です!!
undefined からプロパティ「postData」を読み取れません。
このエラーはスクリプトエディタ上で実行した時のエラーコードです。
POSTでデータが送れていないからだと推測しているので無視しています。
どこがおかしいのかわかっていないので対処法がわかりません。
GASのデバッグ機能以外で何か確認の方法があれば教えていただけると幸いです。
(POSTに対するデバッグはできないと思っています)
該当のソースコード
グローバルオブジェクトに置いてる値
js
1function globalObjOmikuji(){ 2 var omikuji = ["大吉","中吉","小吉","吉","末吉","凶","大凶"]; 3 var results = omikuji[Math.floor(Math.random()*omikuji.length)]; 4 5 return results 6} 7
js
1//このファイルはWebhookを用いた自動のおみくじ 2var API_TOKEN = "××××××××××××××××××"; 3 4function doPost(e) { 5 var json = JSON.parse(e.postData.contents);//POSTの回収??これがおかしい?? 6 Console.log(json); //確認用 7 var roomId = json.webhook_event.room_id; 8 // -----------------------APIを使ってメッセージをPOST to Chatwork---------------------------- 9 var url = "https://api.chatwork.com/v2/rooms/" + roomId + "/messages"; 10 var params = { 11 headers : {"X-ChatWorkToken" : API_TOKEN}, 12 method : "post" 13 }; 14 // -----------------------メッセージを自動で送る---------------------------- 15 if(json.webhook_event.body === "おみくじ"){ 16 17 var accountId = json.webhook_event.account_id; 18 var messageId = json.webhook_event.message_id; 19 20 var body = ""; 21 body += '[rp aid=' + accountId; 22 body += 'to=' + roomId + '-' + messageId + ']'; 23 body += '[info]おみくじの結果:' + globalObjOmikuji() + '[/info]'; 24 25 params.payload = {body :body}; 26 27 28 var strRespons = UrlFetchApp.fetch(url, params); 29 } 30} 31
試したこと
その他のグローバルオブジェクトが悪さをしていると考え、プロジェクトを分けました。
結果:動かず
補足情報(FW/ツールのバージョンなど)
チャットワークWebhookを使ってメッセージ送信をトリガーにGASを起動させる方法
を参考にChatworkとドキュメントを繋げることはできました。
チャット上で「おみくじ」を送信した結果はこんな感じでした。
{"webhook_setting_id":"××××", "webhook_event_type":"message_created", "webhook_event_time":1565332190, "webhook_event":{ "message_id":"×××××××××××××", "room_id":×××××××××, "account_id":×××××××, "body":"おみくじ", "send_time":1565332190, "update_time":0}}

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。