はじめに
Gsuiteユーザが使えるビジネスチャットであるGoogle Chatに通知を送るためにはどうしたらいいのでしょうか。
Google ChatでBotに通知を送れば実現できます。
今回は、Google ChatをNode-REDで扱うためのノードの設定方法についてご説明します。
※注意:Google hangouts chatはG Suiteカスタマのみが利用できます。APIの名前がHangouts Chats APIからGoogle Chats APIに変わりました。適宜読み替えてください。
手順
1. Google Developer Consoleで新規プロジェクトを作成する
Google Developers Consoleにアクセスし、新規プロジェクトを作成します。
任意のプロジェクト名を入力し、「作成」ボタンをクリックします。
新しいプロジェクトが作成されます。
2. Hangouts chat APIを有効化にする
作成した新規プロジェクトを表示します。
「APIの概要に移動」ボタンをクリックします。
「APIとサービスの有効化」ボタンをクリックします。
「hangout chat」キーワードで検索し、Hangouts Chat APIを選択します。
Hangouts Chat APIを有効する為に、「有効にする」ボタンをクリックします。
有効にした後、画面は以下の画像のように表示されます。
3.サービス アカウントを作成する
メニューに認証情報を選択します。
「認証情報を作成」をクリックし、サービスアカウントを選択します。
任意のサービスアカウント名を入力し、「作成」ボタンをクリックします。
オーナーロールを選択し、続行をクリックします。
「完了」ボタンをクリックします。
4. 秘密鍵を作成する
作成したサービスアカウントを選択します。
「キーを作成」ボタンをクリックします。
JSONを選択し、「作成」ボタンをクリックし、ローカルPCにキーをダウンロードします。
キーが成功にダウンロードされたら、「閉じる」ボタンをクリックし、「保存」ボタンをクリックします。
ダウンロードしたファイルは後ほどノードの設定で使用します。
5. チャットボットの設定をする
「Hangout」キーワードで検索し、hangouts chat APIを選択します。
メニューに設定をクリックします。
設定を入力します。
ボット名:必須です。(例:My Bot)
アバターのURL:必須です。公開された画像のURLを入力します。(GCPのCloud Strorageにファイルを置いて公開したり、Salesforceのドキュメントに置いて外部参照ありにするなどの方法が簡単かと思います。)
説明:必須。(例:This is bot test)
機能:ボットが働く場所を選択します。この場合、両方を選択します 。
接続設定:「ボットURL」を選択して、ボットをURLによって追加します。
ボットURL:この場合は、適当なURL、例えば、ボットに関係のある自分のウェブサイトなどのURLを入力します。
権限:このボットを使用できるユーザーを選択します。この場合、全メンバーを選択します。
[保存]ボタンをクリックして完了します。
6. チャットボットをチャットルームに招待する
7. Node-REDのノードをインストールする
Google Chat Botのノードを使用します。
パレットの管理から「Google Chat」キーワードで検索し、node-red-contrib-google-chat-bot の「install」ボタンをクリックします。
フローにinject、function、debug、Hangout chatノードを使って下記の様なフローを作ります。
(Google Chat botノードという名前ですが、パレット上は昔の名称のHangouts Chatのままのようです。)
ノードを結線したら「deploy」ボタンをクリックします。
8. ノードを設定する
認証する為に、鉛筆マークの「編集」アイコンをクリックします。
「キーの作成」でダウンロードしたファイルからclient_emailとprivate_keyを入力し、「Add」ボタンで保存します。
「Save」ボタンをクリックしてキーを保存します。このノードは、個別にチャットボットが追加されている全てのRoomが表示されます。今回は、Direct Messageのまま、「Done」をクリックします。
Injectノードには、しゃべらせたい言葉を設定します。
9. ノードを実行する。
injectノードの左の四角いボタンをクリックして、チャットボット側にメッセージが表示されれば成功です。