LoginSignup
4
3

More than 3 years have passed since last update.

Google Hangouts Chat にスレッドを指定してメッセージをポストする(Python)

Posted at

概要

Google Hangouts Chat にスレッドを指定してメッセージをポストする方法をまとめました。

手順

  1. チャットルームを作成
  2. Webhookを設定
  3. WebhookのURLを使ってメッセージをポスト
  4. メッセージをポストした際のレスポンスから、スレッドの識別子を取得
  5. 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"}
)

結果はこんな感じ。
aaaaa.png

この方法で何度もポストすると、各メッセージが別スレッドに投稿されてしまいます。
スクリーンショット 2020-02-19 0.42.45.png

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.でメッセージを投稿したスレッドにメッセージがポストされます。
スクリーンショット 2020-02-19 0.48.45.png

まとめ

Google Hangouts Chat にスレッドを指定してメッセージをポストすることが出来ました。

後書き

良かったらいいね、コメント下さい。

4
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
3