google謹製のチャットツール、hangouts chatのbotを作成してみたメモです。
公式チュートリアルがあるので、これに沿ってbotを作成・公開してみます。
bot本体を作成する
最低限の機能を持ったテンプレートが用意されています。これを開き、自分のドライブに適当な名前で保存します。
ひとまずbotそのものはこれで完成です。機能を実装する際は、ここに保存したコードを改修していきます。
botをGoogle Cloud Platformで公開する
メニューから「公開」⇒「マニフェストから配置」を選択します。
Latest Version (HEAD)の「Get Id」から配置IDが取得できるので、メモ帳にでもコピペしておきます。
メニューから「リソース」⇒「Cloud Platform プロジェクト」を選択します。
プロジェクト名と一意なIDが書かれているリンクから、Google Cloud Platformのダッシュボードに飛びます。
メニューから「APIとサービス」⇒「ライブラリ」に移動し、Hangouts Chat APIを有効化します。
Hangouts Chat APIの設定を開き、必要事項を入力していきます。
「変更を保存」で保存すれば公開完了です。
ボット名
適当な名前を入力します。botを追加する際は、この名前で検索することになります。
アバターのURL
チャットのアイコンを設定します。httpsで公開されているURLである必要があるみたいです。
アイコンを用意していない場合は、chatのアイコンを借りましょう。
説明
適当に入力します。
機能
複数メンバーのルームに投入して動かしたい場合は「ボットはルーム内で機能します」
DM(一対一)のチャットで動かしたい場合は「ボットはダイレクトメッセージ内で機能します」
にチェックを入れます。
接続設定
Apps Script projectを選択し、さきほどコピペしておいた配置IDを貼り付けます。
権限
「ドメイン内の特定のユーザーとグループ」を選択し、ひとまず自身のメールアドレスを入力します。ほかの人に使ってほしい場合は該当のメールアドレスも入力しましょう。
botを使ってみる
Chatで「ユーザー、チャットルーム、botを検索」から、設定したボット名で検索します。
リストに出てきたbotの「メッセージ」を押下すれば、botの追加は完了です。
話しかけると、「You said "話しかけた内容"」と返してくれます。
返信内容を変えてみる
せっかくなので、返信処理をちょっとだけいじってみます。
作成したプロジェクトの中に、onMessage(event)
という関数があり、これがメッセージを受け取る処理になります。
送られてきたメッセージは、event.message.text
で取得でき、{"text":"返信したいテキスト"}
をreturnすればメッセージを返信できそうです。
function onMessage(event) {
var said = event.message.text;
var msg = "";
if (said === "ズン") {
msg = "ズンズン";
} else if (said === "ズンドコ") {
msg = "\き!よ!し!/";
} else {
msg = "えっ?";
}
return { "text": msg };
}
まとめ
botというと、「rubyやPythonで書いて、サーバ借りて、プログラム置いて…」
というイメージがあったのですが、GASとGCPを利用することでかなりお手軽にbotを構築できました。
その他のgoogle系APIとも連携が容易そうなので、google系のツールを多用している環境ではかなりパワーを発揮しそうです。