G SuiteのHangouts Chatで非同期メッセージ通知を送信する方法

Google Hangouts Chatの非同期メッセージ送信と通知の活用方法

現代のチームコラボレーションとコミュニケーションのツールとして、GoogleのHangouts Chatは多くのユーザーに利用されています。このプラットフォームでは、チャットボットが主にユーザーからのリクエストに応えて動作する「同期的な」方法が主流ですが、状況によっては「非同期的な」メッセージ送信が必要となることもあります。この記事では、Google Hangouts Chatで非同期メッセージを送る方法について詳しく解説します。

非同期メッセージの重要性

非同期メッセージは、ユーザーリクエストに対する応答ではなく、特定のイベントや状況に基づいて自動的に送信されます。例えば、以下のようなシナリオが考えられます:

  • 長時間実行されるバックグラウンドジョブが完了した際の通知
  • 遅れているバスや電車が到着する際の警告
  • サーバーがダウンしたときのアラート

これらの通知は、ボットや監視アプリケーションから送られることがあります。Google Hangouts Chatのボットフレームワークを活用することで、チームメンバーに重要な情報を即時に提供できるのです。

メッセージ送信の方法

Hangouts Chatでの非同期メッセージ送信には、主に二つの方法があります。ここではそれぞれの方法について詳しく見ていきましょう。

  • HTTPベースのREST API
  • インカミングWebhook

1. HTTPベースのREST API

REST APIは、ボットが空間にメッセージを送信する際に使用します。ボットは人間のユーザーではないため、Googleのサービスアカウントが必要となります。以下は、Pythonを使用して非同期にメッセージを送信するサンプルコードです:


from apiclient import discovery
from httplib2 import Http
from oauth2client.service_account import ServiceAccountCredentials

SCOPES = 'https://www.googleapis.com/auth/chat.bot'
creds = ServiceAccountCredentials.from_json_keyfile_name('svc_acct.json', SCOPES)

CHAT = discovery.build('chat', 'v1', http=creds.authorize(Http()))
room = 'spaces/'
message = {'text': 'Hello world!'}
CHAT.spaces().messages().create(parent=room, body=message).execute()

2. インカミングWebhook

インカミングWebhookは、ボットを完全に設定することなくメッセージを送信できる簡単な方法です。監視アプリやカスタムワークフローの統合に利用できます。以下は、インカミングWebhookを使用してメッセージを非同期的に送信するためのPythonのサンプルコードです:


import requests
import json

URL = 'https://chat.googleapis.com/...&thread_key=T12345'
message = {'text': 'Hello world!'}
requests.post(URL, data=json.dumps(message))

コマンドラインからのメッセージ送信

インカミングWebhookを使用すると、コマンドラインからもメッセージを送信できます。以下は、curlを使った例です:


curl -X POST -H 'Content-Type: application/json' 'https://chat.googleapis.com/...&thread_key=T12345' -d '{"text": "Hello!"}'

始めるためのステップ

Hangouts Chatでの非同期メッセージ送信を始めるには、まずはHangouts Chatの開発者ドキュメントを参考にしてください。非同期メッセージの送信は、ボット開発者にとって新たなスキルを身につける絶好のチャンスです。

ぜひ、この記事を参考にして、いろいろなシナリオでGoogle Hangouts Chatを活用してください。チームの生産性を向上させるための手助けになることでしょう。