概要
Google Hangouts Chat にスレッドを指定してメッセージをポストする方法をまとめました。
手順
- チャットルームを作成
- Webhookを設定
- WebhookのURLを使ってメッセージをポスト
- メッセージをポストした際のレスポンスから、スレッドの識別子を取得
- WebhookのURLとスレッドの識別子を使ってメッセージをポスト
1. 新しいチャットルームを作成
割愛します。(後から追記するかも
2. Webhookを設定
割愛します。(後から追記するかも
3. WebhookのURLを使ってメッセージをポスト
WebhookのURLを使ってメッセージをポストします。
import requests
webhook_url = 'https://chat.googleapis.com/*******'
response = requests.post(
webhook_url,
json={"text": "送信テスト\n"}
)
この方法で何度もポストすると、各メッセージが別スレッドに投稿されてしまいます。
4. レスポンスからスレッドの識別子を取得
メッセージをポストした際のレスポンスをプリントします。
text属性に、デコードされたレスポンスの内容が記載されています。
print(response.text)
この中の"thread"に記載されているスレッドの識別子をコピーします。
{
"name": "spaces/***********/messages/***********************",
"sender": {
"name": "users/*********************",
"displayName": "test_webhook",
"avatarUrl": "",
"email": "",
"domainId": "",
"type": "BOT"
},
"text": "送信テスト\n",
"cards": [],
"previewText": "",
"annotations": [],
"thread": {
"name": "spaces/***********/threads/***********" ←ここ
},
"space": {
"name": "spaces/***********",
"type": "ROOM",
"displayName": "test"
},
"fallbackText": "",
"argumentText": "送信テスト\n",
"createTime": "2020-02-18T14:33:38.083263Z"
}
5. スレッドの識別子を使ってメッセージをポスト
4.で取得したスレッドの識別子を使って、スレッドを指定してメッセージをポストします。
import requests
webhook_url = 'https://chat.googleapis.com/*******'
thread = "spaces/***********/threads/***********"
response = requests.post(
webhook_url,
json = {
"text": "送信テスト\n",
"thread": {
"name": thread
}
}
)
すると、3.でメッセージを投稿したスレッドにメッセージがポストされます。
まとめ
Google Hangouts Chat にスレッドを指定してメッセージをポストすることが出来ました。
後書き
良かったらいいね、コメント下さい。