Google Hangouts Chat にプログラムからメッセージを送信する

(コメント)

Google ハングアウトの後継のチャット(インスタントメッセージング)サービス、Chat では、Webhook エンドポイントを使うことでとても簡単にチャットルームへのメッセージの送信ができます。

メッセージの送信に、チャット用の大規模なアプリ開発は不要です。Python でも curl でも JS でも、3行ぐらいでメッセージの送信ができます。

Webhook エンドポイントの作成

1. Chat を開く

https://chat.google.com/

2. チャットルームの作成

左上のメニューから、「チャットルームを作成」を選び、

適当に名前をつける。

3. Webhook エンドポイントの作成

チャットルーム名をクリックするとメニューが開くので、「Webhookを設定」をクリック

+ WEBHOOKを追加 をクリック

適当に名前をつけて、「保存」

Webhook の URL ができる。このURLを記録しておく。

メッセージを送信する

Python

import requests

webhook_url = 'https://chat.googleapis.com/v1/spaces/...%3D'

response = requests.post(
webhook_url,
json={"text": "こんにちは、世界!"}
)

requests を使えば、これだけでメッセージを送信できます。簡単ですね!

curl

curl -X POST "https://chat.googleapis.com/v1/spaces/...%3D" \
--header "Content-Type: application/json; charset=UTF-8" \
--data '{"text": "こんにちは!"}'

これで送信できます。

その他

その他のツールでメッセージを送信するには、Incoming webhook with Python を参考に

HTTPリクエストヘッダ: Content-Type: application/json; charset=UTF-8

リクエストボディはJson: {"text": "Hello from Python script!" }

で送信できます。

400エラーが出たら

テストコードを書いていたら、HTTPステータス400

{
"error": {
"code": 400,
"message": "Request contains an invalid argument.",
"status": "INVALID_ARGUMENT"
}
}

このようなエラーレスポンスが返ってきて困ってたのですが、この原因は単純なURLのコピペミスでした。URLの最後まで正しくコピペできているか、確認してください。

現在未評価

コメント

検索

最近のツイート

  • ytyng

    ytyng @ytyng

    フェルメール展を家族と見てきた。オランダの日常風景を切り取ったような絵画が多かったけど、「この風景ウィッチャー3で見たな…」ってのを結構感じた
    4 日, 10 時間 前

  • ytyng

    ytyng @ytyng

    mac os mojavi にしたら、外部ディスプレイが紫色になったり認識しなくなったりしてる。けっこういるみたい https://t.co/m2RPsOjXZy
    3 週間 前

  • マンガ展/TORICO

    マンガ展/TORICO @manga10_torico

    ytyng

    『狂い鳴くのは僕の番 ;β(1)』楔ケリイラスト展 Re;Re;dewdrop[初日] https://t.co/X6SSIxZked オープンから沢山のご来場ありがとうございます‼ 新規展示物あり!ドラマCD台本にはケリ先… https://t.co/fGFbVzjCOB
    3 週間, 4 日 前

  • マンガ展/TORICO

    マンガ展/TORICO @manga10_torico

    ytyng

    本日は、社員一同参加の食事会その名も 『TORICO NIGHT』が開催されておりました。 日曜から始まる #狂僕drop を待ちきれずに じゃんけん大会では #ダンディさん が 「くるぼくじゃんけん」を!!!!! くるぼくじ… https://t.co/kzT0FoZkxR
    3 週間, 5 日 前

  • ytyng

    ytyng @ytyng

    俺もスタバアプリにログインできないよ
    2 ヶ月, 1 週間 前