#はじめに
Googleが2月28日(現地時間)に、メッセージングサービス「Hangouts」からチャットサービスとして派生した「Hangouts Chat」をリリースした。
リリースに伴い、以下2点について分からなかったのでまとめてみた。
・「Google Hangouts Chat」で何ができるのか?
・「Google Hangouts Chat」のBot開発について
#「Google Hangouts Chat」とは
##1.概要
従来の「Hangouts」の個人向けメッセージ機能を基盤として、以下の機能が追加されたチーム向けのコミュニケーションツールである。
・ドキュメントとファイルの共有
・チャットルームでのメッセージのスレッド表示
・ドライブやドキュメントとの連携
・Bot機能
など...
【Hangouts Chat と従来のハングアウトの機能の比較】↓
公式サイト:https://support.google.com/a/answer/7651799?hl=ja&ref_topic=7651939
「Hangouts」は個人向けだったのに対し、「Google Hangouts Chat」は組織で活動しやすいような機能が追加された。
また、利用者の要件としても G Suite ユーザだけが利用できる。
一言で言えば「ビジネス向けのコミュニケーションツール」である。
##2.何ができるのか?
・G Suiteの他のサービスと統合されているため、Googleドライブ内のコンテンツなど簡単に共有できる
・Botが利用できる
その中でもBotに関してはスタート時点で25のBotが用意されている。
ファイルが共有されると通知がくる@Google Drive、Googleカレンダーのミーティングをサポートする@Meetなどがある。
ただ、用意されているBotは現時点(4/25)で日本語対応になっていない...
また、サードパーティー製Botを追加することもできる。salesforce.comやKayakなどが既に関連ツールを提供している。
自身で専用Botを開発することも可能である。
#「Google Hangouts Chat」のBot開発について
##1.概要
Botは、ユーザからのイベント発生時やその他Webサービスのイベント発生時にBotから応答がくる。
ユーザからのイベントとしては主に以下の3点がある。
・ユーザがChatRoomに参加
・ユーザがBotにmessage送信
・ユーザがChatRoomから退出
Hangouts ChatのBotは、以下の場合に利用できる。
・ダイレクトメッセージ(DM)
・チャットルーム
※グループメッセージ時には利用できない。そもそも、Botを設定することができない。
【Hangouts Chat Botの概念】↓
Chat Bot Concepts:https://developers.google.com/hangouts/chat/concepts/bots
また、Botからの応答は以下の2種類がある。
・テキスト
・カード
カードテキストの応答は、複雑なUIを表示させることもできる。
##2.Bot開発について
###クイックスタート
開発にあたり、公式サイトで以下の3点がクイックスタートとして記載されている。
・Google Apps Script Bot
前提条件:Googleアカウント
開発言語:GAS(JavaScript)
手順:https://developers.google.com/hangouts/chat/quickstart/apps-script-bot
・Google Cloud Functions bot
前提条件:Googleアカウント、請求が有効になっているGoogle Cloudアカウント
開発言語:JavaScript
手順:https://developers.google.com/hangouts/chat/quickstart/gcf-bot
・Pythonを使用したWebHookの受信
前提条件:Python2.6以上、Googleアカウント、既存のハングアウトチャットルーム
開発言語:Python
手順:https://developers.google.com/hangouts/chat/quickstart/incoming-bot-python
※Google Apps Scriptの利用がBotを開発するのに最も簡単な方法の一つとされている。
###その他の開発
全体としては、以下の様々なプラットフォームと言語でBotを開発することができる。
・Google Apps Script (JavaScript)
・Google Cloud (JavaScript)
・Google App Engine (Python,Java,PHP,Goなど)
・Google Compute Engine (あなたの言語,スタック,インスタンス)
・その他のパブリックまたはプライベートクラウド (AWSなど)
【開発者用ドキュメント】↓
Reference Documentation:https://developers.google.com/hangouts/chat/reference/
Sample Code:https://developers.google.com/hangouts/chat/samples
###Hangouts ChatとBotの接続方法
Hangouts Chatはエンドポイント経由でBotと通信する。
【Botに接続するためのエンドポイントについて】↓
Endpoint types:https://developers.google.com/hangouts/chat/how-tos/bots-develop#archstyles
※ファイアーウォールを使用している場合は、Botにメッセージが送信できないのでHangoutsChatのCloud Pub/Sub統合機能を利用することで接続を確立させる。
【詳細】↓
Cloud Pub/SubをBotのエンドポイントとして使用:https://developers.google.com/hangouts/chat/how-tos/pub-sub
#BotやHangouts Chat利用時のアクセス権限
会話的なやり取りにより、ドライブ内のファイルなどを簡単に共有できるようになる。しかし、実際にBotなどを利用した際の挙動について明確にわからない。
調べてみたがあまり情報がなかった。
以下が調べてみた内容
・ChatRoomに非公開ファイルを共有するとコメントと閲覧だけできる状態でChatRoom内のメンバー全員に共有
・管理者設定により、DMやChatRoomまた組織単位でルールを設定できる(ルール内容は不明)
全然情報がない!!!
とりあえず、実際に動かしたり開発をすることで調べる必要がある。
#まとめ
スタート時点で、Botが準備されているだけあって開発資料が整っていた印象を受けた。ただ、開発資料に記載されているものはGoogle Cloudサービスを利用した内容中心であり公式サイトは英語である。
AWSやAzureの利用に関してはあまり情報がなかった。しかし、サンプルコードでは、Java、Node.js、Pythonが準備されているため開発言語は多様であると感じた。
#参考資料
公式Developersサイト:Hangouts Chat API
cURL/Python/AWS Lambda から Webhook を使って Hangouts Chat にメッセージ投稿する方法
Google Developers Blog