見出し画像

[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になるようにがんばってみましょう!


この記事が参加している募集

この記事が気に入ったらサポートをしてみませんか?