Node.jsからTeamsのIncoming Webhookに通知してみた
ごきげんよう。パーソルホールディングス株式会社 グループデジタル変革推進本部エンゲージメントプロダクト開発部 鈴木です。
今回は、Node.jsからTeamsのIncoming Webhook宛にメッセージを送信する方法について、備忘を兼ねて記載したいと思います。
※TeamsのIncoming WebhookのURL発行手順は こちら をご参照ください。
<前提条件>
Node.jsのバージョン 16.15.0
npmのバージョン 8.5.5
<ライブラリのインストール>
今回はTeamsのIncoming Webhookに対してリクエストを送信するために axios を使います。
$ npm install axios
<基本的なメッセージの送信>
コード
const axios = require('axios');
const webhookUrl = '<ここに発行したIncoming WebhookのURL>';
const params = {
text: 'Node.jsからメッセージが送信されました。'
};
axios.post(webhookUrl, params)
.then(() => {
console.log("送信完了");
})
.catch((error) => {
console.log(error);
});
<結果>
<アダプティブカードを送信>
単純なテキストの送信のほかに、アダプティブカードという形式でメッセージを送信することが出来ます。アダプティブカード形式では、より凝ったデザインのメッセージを送信することが出来ます。Microsoftからアダプティブカードを作成するためのツールが公開されているため、 https://adaptivecards.io/designer/ を参考にすると良いかもしれません。
今回は画像と大きめのテキスト、タイトル要素を追加したカードを送信してみます。
コード
const axios = require("axios");
const webhookUrl = '<ここに発行したIncoming WebhookのURL>';
const adaptiveCard = {
type: "AdaptiveCard",
body: [
{
type: "TextBlock",
size: "Medium",
weight: "Bolder",
text: "タイトルタイトルタイトル",
},
{
type: "ColumnSet",
columns: [
{
type: "Column",
width: "stretch",
items: [
{
type: "Container",
items: [
{
type: "ColumnSet",
columns: [
{
type: "Column",
width: "auto",
items: [
{
type: "ImageSet",
images: [
{
type: "Image",
size: "Medium",
url: "https://www.belltree.tokyo/image/cat1451383840605.png",
},
],
},
],
},
{
type: "Column",
width: 50,
items: [
{
type: "TextBlock",
text: "New TextBlock",
wrap: true,
size: "ExtraLarge",
},
],
},
],
},
],
},
],
},
],
},
],
$schema: "http://adaptivecards.io/schemas/adaptive-card.json",
version: "1.5",
};
const params = {
type: "message",
attachments: [
{
contentType: "application/vnd.microsoft.card.adaptive",
content: adaptiveCard,
}
],
};
axios
.post(webhookUrl, params)
.then(() => {
console.log("送信完了");
})
.catch((error) => {
console.log(error);
});
<結果>
<まとめ>
Node.jsからTeamsにメッセージの送信を確認することができました。
個人的にはSlackの方が好きだったりしますが、それはそれとして、Teamsに何かしらのメッセージを送信したい場合には便利な機能かもしれません。
ご清覧ありがとうございました。
※所属組織や業務内容は2023年2月時点のものです。
パーソルホールディングスは、グループビジョン「はたらいて、笑おう。」の実現に向け、グループ経営をともにリードする仲間を募集しています。
中途採用の詳細はこちら⇒募集職種一覧
パーソルホールディングス採用サイトはこちら