49
20

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.

Incoming Webhook もできないこんな世の中じゃ (高専機構の Teams で Webhook する方法)

Last updated at Posted at 2020-08-04

ちょっとした連携機能を作成するとき, Incoming / Outgoing Webhook は非常に便利です.単純な HTTP リクエストを送る / 受け取るだけで済むので,サーバレス化が容易にできます.

私が所属する高専 (高等専門学校) では共通で Microsoft Teams を使用しています.しかし,我らが 高専機構 は Incoming Webhook の使用を許可してません.さらに,カスタムアプリの追加も許可していません.つまり, Bot を作成しても追加することさえ許されないのです.

これは,そんな状況の中で Incoming Webhook を使う方法を共有する記事です.もちろんそれ以外の状況でも使えますが,必要はないでしょう.恐らくこれを読んでためになるのは高専生ぐらいだと思います.そうであってほしいですね.

で,どうやるの?

Power Automate を使います.これは旧称 Microsoft Flow というヤツで,一言でいえば IFTTT の Microsoft 版です.ただ IFTTT よりも Microsoft 製品との連携機能が充実しています.

Flow のトリガとして Incoming Webhook を使うことができ,アクションとして Microsoft Teams へのメッセージ送信ができるので,今回のケースにぴったりです.ということで,こいつに中継させましょう.

もうちょっと詳しく

左のメニューから Create > Instant Flow と進みます.
image.png

名前を適当に決め, When an HTTP request is received トリガを選択して Create します.
image.png

Webhook に投げる JSON のスキーマを書きます. 仕様 を読んで頑張ってください.そんなに難しくないです.
image.png

Next Step から Post a message as the Flow bot to a channel (preview) を追加します.
image.png

送信先のチームとチャンネル,送信するメッセージを決めます.メッセージには先ほど入力した JSON スキーマでパースされた値が使えます.今回は中継だけなので {"message": "[ここ]"} をそのまま使います.
image.png

Save すると, HTTP POST URL が発行されます.ここにリクエストを投げるだけです.
image.png

実際にリクエストを投げて実行してみます.使うツールはなんでもいいです.HTTP でお喋りできる方は openssl s_client とかでも大丈夫です.
image.png

成功すると 202 Accepted が返ってきます.
image.png

指定したチャンネルにメッセージが投稿されていれば,成功です.お疲れ様でした!
image.png

おわりに

Incoming Webhook を無効化している理由は分かりませんが,こうした連携機能の実装は Web API を使うための学習の一環となると思いますし,効率化を図るためのツール作成ができるなど幅が広がると思っています.情報工学を学ぶ学生が多い高専であればなおさらでしょう.高専機構さんは他にも多くの機能の利用を許可していませんが,その規制が必要かどうかもう一度改めていただきたいなと思います.しがない高専生からのお願いでした.

49
20
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
49
20

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?