Edited at

Google Hangouts Chat Botについて

More than 1 year has passed since last update.


はじめに

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