16
24

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Advent Calendar 2018

Day 18

[超簡単]Hangouts Chat の incoming webhooks を使ってAPIから簡単にメッセージを投稿する

Last updated at Posted at 2018-12-17

概要

  • タイトル通りです。
  • Hangouts Chat は ルーム毎に超簡単にwebhook用のURLを払い出すことが出来ます。
  • 投稿もとても簡単です。
  • なお、Hangouts Chatは、G suite を利用されていればご利用頂けます。
  • 社内ツールとしてバンバン活用しましょう!

準備

  • webhook の エンドポイントを払い出します。
  1. 喋らせたい部屋のメニューから「Webhookを設定」を開きます。
    s1 [2].jpg

  2. bot名を決めます

s2 [2].jpg

  1. 投稿用URLが払い出されるのでメモしておきます。

s3 [2].jpg

curl から投稿してみる

  • 簡単なJSON構造をPOSTすることで簡単に投稿出来ます!
sample.sh
curl -H 'Content-Type:application/json' -d '{ "text": "Hello World :)" }' "WebhookのURL"

image.png

  • か、、簡単!\(^o^)/

php からの投稿

  • 簡単なサンプルコードを記載します。
sample.php
<?php
define('WEBHOOK_URL', 'WebhookのURL');

function post_message($text)
{

    $content = json_encode(['text' => $text]);

    $options = [
        'http'=> [
            'method' => 'POST',
            'header' => "Content-Type: application/json\r\n"
            . "Content-Length: " . strlen($content) . "\r\n" ,
            'content' => $content
            ]
        ];
    $context = stream_context_create($options);
    $resultJson = file_get_contents(WEBHOOK_URL, FALSE, $context);

    if(strpos($http_response_header[0], '200')){
        return true;
    }
    return false;
}

post_message("Hello World :)");

あれこれ

  • Webhook の説明はUsing incoming webhooksをご覧ください。簡単な英語です。
  • 投稿のフォーマットをもっとリッチにしたいときは、
  • 今回使った投稿フォーマットの説明はこちら。太文字や打ち消し線、コードなどに対応しています。
  • もっとリッチに画像入れたりする場合は、cardsというフォーマットを見てみましょう。 今回はやりませんでしたが、こちらも比較的簡単に出来ます。

まとめ

  • 単純な送信であれば、Webhook のURLに JSONを投げつけるだけで簡単にbot が実装可能です!\(^o^)/
  • 「簡単」という単語が本文中に10回出現します。
16
24
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
16
24

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?