[GAS][CHATWORK]Webhookでチャットワークからの情報を取得しよう!
こんばんわ!今日は、タイピングの練習をさぼったな~です。はやくタイピングクラブ作成しないといけませんね。
前回は、Webhookからeの情報を取得するところまでできました。
今日は、そのeの情報からチャットで入力した内容などを取得したいと思います。
情報を取得してみよう!
前回は、e全体をスプレットシートに登録してみました。
sheet.appendRow(['doPost', 'e', date, e]);
いろいろeの中身をみたのですが、なかなかチャットで入力したものはでてきません。そこでネット検索をしてみました。
postDataが必要
チャットの中身をみるにはpostDataの中を見る必要があるようです。
const contents = e.postData.contents;
parseが必要
また、だしてもだしても、でてこないと思ったら、
const json = JSON.parse(e.postData.contents);
parseする必要があることがわかりました。
const sp = SpreadsheetApp.getActiveSpreadsheet();
const sheet = sp.getSheetByName('log');
const contents = e.postData.contents;
const date = new Date();
sheet.appendRow(['doPost', 'e', date, e]);
const json = JSON.parse(e.postData.contents);
const body =json.webhook_event.body;
const roomId =json.webhook_event.room_id;
const accountId = json.webhook_event.account_id;
sheet.appendRow(['doPost', 'contents.webhook_setting_id', date, json.webhook_setting_id]);
sheet.appendRow(['doPost', 'contents.webhook_event', date, json.webhook_event]);
sheet.appendRow(['doPost', 'contents.webhook_event.body', date, json.webhook_event.body]);
sheet.appendRow(['doPost', 'contents.webhook_event.room_id', date, json.webhook_event.room_id]);
sheet.appendRow(['doPost', 'contents.webhook_event.account_id', date, json.webhook_event.account_id]);
まとめ
これでルームIDとアカウントIDとbodyがとれたので、何でもできる気がします。次はBOTになるようにがんばってみましょう!
この記事が参加している募集
この記事が気に入ったらサポートをしてみませんか?