Help us understand the problem. What is going on with this article?

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

njc
NJCは、優れたシステムとサービスを通して、豊かな社会の実現に貢献します。
https://www.njc.co.jp/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away