Microsoft TeamsのWebhook URLにNode.jsから情報を送ってみる


最近仕事のやりとりでTemasを使う機会が増えてきました。

Teamsのハックを出来ないかと調べてみているメモです。

Webhook URLの取得

自分が管理権限があるチームの左下にアプリボタンがあると思います。


割とこの第1ステップで迷いました。

ここからIncomming Webhookを探してチームに追加します。

利用するチャンネルを選びます。

名前を適当に決めましょう。

作成ボタンを押すとhttps://outlook.office.com/webhook/~~~というアドレスが発行されます。

CURLで試す

cURLだと以下をコピペで実行できます。

$ curl -H 'Content-Type: application/json' -d '{"text": "Hello World"}' <YOUR WEBHOOK URL>

実行結果はこんな感じです。

参考: cURL を使用してメッセージを Webhook に投稿する

ここまできたらこちらのものですね。

Node.jsから試す

axiosを利用します。

$ npm ini -y
$ npm i axios
app.js
'use strict'

const axios = require('axios');
const URL = `https://outlook.office.com/webhook/~~~`; //各自のWebhook URL

axios.post(URL, {text: 'Node.jsから送信'})
    .then(res => console.log(res.data));

シンプルなコードですね。
実行します。

$ node app.js
1

res.dataには1という数字が返ってくる模様。

所感

Webhook URLの発行で結構迷いました。Slack, LINE, Discordなど様々なBOTを触りましたが今回はどんなパターンだろう......といった感じです。今のところの結論はSlack BOTに近いような印象です。Incoming WebhookのアプリというかBOTアカウントをチームに追加すると、連動しているWebhook URLが発行されるといった流れ。

他にもやり方ある気がするので引き続き調べてみます。