GASとチャットワークWebhookで即レスポンスのおみくじチャットを作る方法

★気に入ったらシェアをお願いします!


omikuji

photo credit: yuichi.sakuraba Trilingual via photopin (license)

みなさん、こんにちは!
タカハシ(@ntakahashi0505)です。

GASとチャットワークWebhookを連携させて、いろいろな便利ツールを作っております。

前回はこちらの記事。

チャットワークWebhookを使ってメッセージ送信をトリガーにGASを起動させる方法
チャットワークWebhookとGASの連携方法についてお伝えしております。今回はいよいよチャットワークWebhookを使ってメッセージをトリガーにGASを起動するスクリプトとその手順をお伝えしていきます。

チャットワークのメッセージ送信によるWebhookを使って、そのPOSTリクエストをGASのドキュメントに表示する方法をお伝えしました。

今回は、もう少し、若干、ほんのり、それっぽいツールを作ってみたいと思います。

それがおみくじチャットです。

以前、以下の記事で紹介したものは、GASの時限式のトリガーで定期的にメッセージを取得しに行っていたのですが、Webhookがあればチャットワーク側から起動することができます。

Google Apps ScriptでチャットワークにToや返信でメッセージを送る
Google Apps Scriptでチャットワークのおみくじチャットを作っています。今回はチャットワークのメッセージ記法を使って、おみくじの結果をToや返信のメッセージにする方法です。

ということで、GASとチャットワークWebhookでおみくじチャットを作る方法です。

では、行ってみましょう!

以前作成したおみくじチャット

まず、以前のおみくじチャットについて、紹介をします。

少し表現を変えている部分もありますが、以前の紹介記事と同じものですので、詳細はそちらの記事を参考ください。

チャットワークからメッセージを取得して返信をするスクリプト

メインのスクリプトはこちらです。

このgetOmikujiを実行すると、まずチャットワークの指定のルームの新規メッセージの集合を取得します。そしてparseメソッドで、変数jsonにオブジェクトとして格納します。この部分が7~13行目です。

次に、jsonに含まれているメッセージについて「おみくじ」と一致するものがあれば、そのメッセージへおみくじの結果を返信するという仕組みです。それをしているのが、16~18行目です。

今回は、メッセージの取得がWebhookによるPOSTリクエストからの取得と変更をしていきます。

おみくじの結果を生成する

また、おみくじの結果を生成するのが、以下のgenerateOmikujiです。

これはそのまま再利用できますね。

Webhookを使ったおみくじチャット

さて、チャットワークWebhookからのPOSTリクエストを受け取るのは、getPost関数でした。

そして、そのリクエストのボディからデータを取り出すには

Eventオブジェクト.postData.contents

とすれば良かったですね。

さらに、その中の「webhook_event」というフィールドに様々なデータが格納されていて、今回必要なのは以下の値となります。

  • ルームID:room_id
  • メッセージID:message_id
  • メッセージの送信元のアカウントID:account_id
  • メッセージの送信元のアカウント名:※含まれてない
  • メッセージ本文:body

残念ながらメッセージの送信元のアカウント名だけは、POSTリクエストから取得できませんので、今回は置いておきますが、それ以外は取得できますね。

詳細は以下記事もご参考ください。

チャットワークのメッセージの送信をトリガーにGASを作動させられるWebhookが使えるようになった
チャットワークAPIのバージョンアップによりWebhookが使えるようになりました。今回はWebhookとは何か、そしてWebhookとそのリクエストによりGASを動作させる仕組みについてお伝えします。

APIトークンの取得

おみくじの結果をチャットワークAPIに返送するために、チャットワークAPIトークンが必要になります。

以前の記事でも紹介していたのですが、画面が変更になりましたので再度紹介しておきます。

まず、チャットワークの画面でプロフィールアイコンのメニューから、「API設定」を選択します。

チャットワークAPI設定を開く

続いて、左側のメニューから「API Token」を選択。パスワードを入力画面になりますので、チャットワークパスワードを入力して「表示」です。

チャットワークAPIトークンを取得する

すると、APIトークンが表示されますので、大事にメモしておきましょう。

おみくじチャットのスクリプト

実際のdoPost関数のスクリプトは以下のようになります。

Webhookでは対象となる単体のメッセージについてのデータをピンポイントで取得できるので、スクリプトもすっきりしますね。

Webアプリケーションとして公開してWebhookを作成

doPost関数が完成したら、Webアプリケーションとして公開します。

するとこのプロジェクトのURLが生成されますので、それをもってチャットワークWebhookを作成します。

詳細は以下の記事をご参考ください。

チャットワークWebhookを使ってメッセージ送信をトリガーにGASを起動させる方法
チャットワークWebhookとGASの連携方法についてお伝えしております。今回はいよいよチャットワークWebhookを使ってメッセージをトリガーにGASを起動するスクリプトとその手順をお伝えしていきます。

おみくじWebhookの実行結果

では、実行をします。

Webhookですからレスポンスも速く、以下のような返事がすぐに来ます。

GASとチャットワークWebhookによるおみくじチャット

「凶」というのが気になりますが…

まとめ

以上、GASとチャットワークWebhookを使っておみくじチャットを作る方法をお伝えしました。

  • チャットワークWebhookから各フィールドの値を取得する

メッセージを送ってからの動作が速いのはもちろん、スクリプトもすっきり書けるようになりました。

いや~、Webhook素晴らしい!

次回、また別のツールをGASとチャットワークWebhookで作っていきたいと思います。

どうぞお楽しみに!

連載目次:GASとチャットワークWebhookを連携させた便利ツール

チャットワークAPIのバージョンアップでメッセージ送信や自分へのメンションをトリガーにしたWebhookを使用することができるようになりました。GASとの連携により色々な便利ツールを作っていきます。
  1. チャットワークのメッセージの送信をトリガーにGASを作動させられるWebhookが使えるようになった
  2. チャットワークWebhookを使ってメッセージ送信をトリガーにGASを起動させる方法
  3. GASとチャットワークWebhookで即レスポンスのおみくじチャットを作る方法

The following two tabs change content below.
1976年こどもの日生まれ。東京板橋区在住。「ITで日本の『働く』の価値を上げる!」をテーマに、VBA&GASの開発、講師、コンサル、執筆本を中心に活動しています。→詳しいプロフィールはコチラ ★ご依頼・ご相談はお気軽にどうぞ!→お問い合わせはコチラ ★フォロー頂ければ嬉しいです。