【GAS】ChatworkのWebhookを使ってBOTを作ってみる

※投稿内容は個人の学習目的の記事であり、所属組織とは一切関係ありません。
　Chatwork公式ドキュメントではございませんので、自己責任でご利用ください。

こんにちわ、さかぐち（[@sakaguchi_mamii](https://twitter.com/sakaguchi_mamii)）です。

今回は「褒めて」とChatworkのグループチャットに投稿したら、褒め言葉を返してくれるBOTを作成していきます。

#APIトークンを取得する

右上のメニューから「API設定」を選択する。
<img width="210" alt="API設定.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/136275/4ef9404f-037d-c32d-0db9-0109164b6be5.png">

パスワードを入力する。
<img width="978" alt="スクリーンショット 2020-04-29 20.30.31.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/136275/b8b05005-c099-bfc5-e43a-1138192bac9b.png">

APIトークンを取得する。
<img width="976" alt="スクリーンショット_2020-05-04_06_29_18.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/136275/f8b2c206-f4aa-adae-8e1e-0c51d129145b.png">

#ライブラリを読み込む

Chatworkへメッセージ送信は「[Chatwork Client for Google Apps Script](https://github.com/cw-shibuya/chatwork-client-gas)」を利用します。

プロジェクトキー: M6TcEyniCs1xb3sdXFF_FhI-MNonZQ_sT

<img width="704" alt="スクリーンショット 2020-04-23 11.54.09.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/136275/de7d0248-c75a-5c67-399f-b6cf300ccdfa.png">

#スクリプト
```Javascript
const token = 'APIトークン';

function doPost(e) {

  var json = JSON.parse(e.postData.contents);
  if(json.webhook_event.body === "褒めて"){
    
    var account_id = json.webhook_event.account_id;
    var message_id = json.webhook_event.message_id;
    var room_id = json.webhook_event.room_id;

    var message = '';
    message += '[rp aid=' + account_id;
    message += ' to=' + room_id + '-' + message_id + '] ';
    message += 'あなたは素晴らしい！';

    var client = ChatWorkClient.factory({token: token});
    client.sendMessage({
      room_id: room_id,
      body: message
    });

  }
}
```
#ウェブアプリケーションとして導入

公開＞ウェブアプリケーションとして導入　を選択する。
<img width="291" alt="スクリーンショット 2020-05-01 16.11.08.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/136275/7892a0d8-07a8-2ea7-3309-584d8d65d51d.png">

デプロイ情報を設定し、「Deploy」をクリックする。
<img width="458" alt="スクリーンショット_2020-05-01_16_12_04.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/136275/1de4d649-779e-fea6-7f92-92fdb56b03e0.png">

「Current web app URL」をメモ帳などに記載する。
（後続のwebhookの設定で利用します。）
<img width="462" alt="スクリーンショット 2020-05-01 16.12.13.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/136275/96977d29-d5cc-c1bf-7441-9251a17e9f5d.png">

#webhookの設定

右上のメニューから「API設定」を選択する。
<img width="210" alt="API設定.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/136275/4ef9404f-037d-c32d-0db9-0109164b6be5.png">

Webhookを選択し、「新規作成」をクリックする。
<img width="973" alt="スクリーンショット 2020-05-01 16.10.13.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/136275/3bf85bec-c940-3ac0-4f2e-9d9fc4fa804c.png">

必要な情報を入力し、「作成」をクリックする。
<img width="723" alt="スクリーンショット_2020-05-01_16_10_46.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/136275/38177062-a87d-aa05-93e3-aaf6460db9d6.png">

#テスト

褒めてもらった！
<img width="818" alt="スクリーンショット 2020-05-04 07.18.46.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/136275/fbe16685-ae0e-187f-96a3-d33c28203576.png">

#最後に

今は決まった言葉しか返さないので、スプレットシートに書いた褒めた言葉をランダムに返せるようにできたらと思ってます。いつか。