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


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

こんにちわ、さかぐち(@sakaguchi_mamii)です。

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

APIトークンを取得する

右上のメニューから「API設定」を選択する。

パスワードを入力する。

APIトークンを取得する。

ライブラリを読み込む

Chatworkへメッセージ送信は「Chatwork Client for Google Apps Script」を利用します。

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

スクリプト

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
    });

  }
}

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

公開>ウェブアプリケーションとして導入 を選択する。

デプロイ情報を設定し、「Deploy」をクリックする。

「Current web app URL」をメモ帳などに記載する。
(後続のwebhookの設定で利用します。)

webhookの設定

右上のメニューから「API設定」を選択する。

Webhookを選択し、「新規作成」をクリックする。

必要な情報を入力し、「作成」をクリックする。

テスト

褒めてもらった!

最後に

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