ささみ学習帳 - sasami's study book

ささみ学習帳

Microsoft365 や Power Platform について学んだこと・アイデアのメモ

Teamsの新しいIncoming Webhookの設定手順を確認してみた(従来手順から移行が必要)

 

 

はじめに

Teamsのチャネルで使えるIncoming Webhookという機能があります。

Webhookに対応したシステムから比較的手軽にTeamsのチャネルにメッセージを投稿できる機能です。

 

Office 365 コネクタ廃止によりIncoming WebHookは移行が必要に

目代さんのMicrosoft 365 メッセージセンター朗読会でTeams の Office 365 コネクタ廃止に触れられていました。

 

TeamsのOffice 365 コネクタ? そう かんけいないね

その時はそう思っていたのですが、Incoming WebHookでチャネルにメッセージが投稿された時に、下図のような案内が表示されるようになりました。

Deeplで日本語訳するとこんな感じです。

アクションが必要です: Teams 内の O365 コネクターは非推奨となり、このサービスからの通知は停止されます。このタイミングと、ワークフローアプリがより柔軟で安全なエクスペリエンスを提供する方法については、こちらをご覧ください。このようなメッセージの受信を継続したい場合は、ワークフローを使用して Webhook リクエストからメッセージを投稿できます。ワークフローの設定

Learn moreのリンク先はこちら

devblogs.microsoft.com

 

Office 365コネクタというものは、Teamsのチャネル→チャネルの管理→コネクタで追加することができるこれらの機能が廃止されることを意味するようです。

 

Microsoft 365管理センターのメッセージセンターのメッセージはこちらです。

https://admin.microsoft.com/Adminportal/Home?ref=MessageCenter/:/messages/MC808160

 

廃止に向けたスケジュールは下記のようになっています。

  • 2024/8/15
    • 新規のコネクタ追加ができなくなる
  • 2024/10/1
    • 既存のコネクタが機能しなくなる

今後はワークフロー機能に移行するように案内されています。

というわけで、新しいワークフローでのIncoming Webhookを確認してみました。

 

従来のIncoming Webhook からの変化点

投稿ユーザーの表示名・アイコンが変更できなくなった

従来のIncoming WebHookでは任意のアイコンと表示名に設定することができるので、チャネルに匿名投稿する目的で使うことも可能でした。

新しいIncoming WebHookではアイコンは固定・フロー所有者の名前が表示される様になります。

 

ユーザー(所有者)に依存する動作になったのでユーザーのアクセス許可に注意

従来のOffice365コネクタではチームの所有者であれば誰が設定しても同じ動作でした。しかしワークフロー(実態はPower Automateクラウドフロー)に変わったことで、ワークフローを作成したユーザーのアクセス許可で動作する様になっています。この為、ワークフロー作成者が、チームへのアクセス許可がなくなるとIncoming Webhookは動作しなくなることが予想されます。

 

ワークフローでIncoming Webhookを設定する

2024年7月時点では2つの方法で設定ができました。

[A]新規でIncoming Webhookを設定する

こちらのMicrosoftブログで紹介されている手順です。

今後新規でIncoming Webhookを始める場合もこちらの手順になります。

 

A-1.チャネル右クリック→ワークフロー

 

A-2.チームに通知する→Webhook 要求を受信するとチャネルに投稿するを選択

 

A-3.フローの作成

既定の名前ではどのチームのチャネルのものかわかりづらいので名前を変更する方が良いと思います。

※Power Automate クラウドフローでTeamsコネクタを使ったことがない場合はここでサインインが求められると思われます

 

A-4.チーム・チャネルの選択

既定で選択したチーム・チャネルが表示されます。通知先がこのチャネルで良ければ「ワークフローを追加する」をクリックします。

 

A-5. POST先URLをコピー

フローの作成が完了すると、このように表示されますので赤枠のアイコンをクリックしてURLをコピーしておきます。

 

メッセージを送信する側でコピーしたURLに投稿するように設定します。

 

以上でこの手順は完了です。

 

[B]既存のOffice365コネクタのIncoming WebHookのメッセージの通知から

既存のOffice 365 コネクタのIncoming WebHookでメッセージが投稿されると、そのメッセージの末尾の追加通知から作成することもできます。

[A]とほぼ同じ動作ですが若干違います。

  • 作成されるダイアログが英語表記
  • 作成されるフローの名前は既定では英語表記
  • 現在のチャネルを既定で選択しない

なので、基本的には[A]の方がお手軽です。

 

B-1.メッセージ末尾の「Set up workflow」をクリックします。

 

B-2.フローの作成

既定の名前ではどのチームのチャネルのものかわかりづらいので名前を変更する方が良いと思います。

※Power Automate クラウドフローでTeamsコネクタを使ったことがない場合はここでサインインが求められると思われます

 

B-3.チーム・チャネルの選択

こちらの手順では既定で現在のチーム・チャネルが選択されません。チーム・チャネルを選択して「ワークフローを追加する」をクリックします

 

B-4. POST先URLをコピー

フローの作成が完了すると、このように表示されますので赤枠のアイコンをクリックしてURLをコピーしておきます。

 

新しいワークフローのIncoming WebHookへの移行方法

上記のいずれの手順で作成しても、従来のOffice 365 コネクタのIncoming Webhook とは異なるURLに変わります。そのため

  1. ワークフローでIncoming Webhookを設定する
  2. 通知元サービスの設定を変更する

という手順が必要な事に注意が必要です。

 

作成されたフローを覗いてみる

フロー作成完了のダイアログで「ワークフローを管理する」をクリックすると、TeamsでWorkflowsアプリが開かれます。ワークフローの実態はPower Automateクラウドフローになっています。

 

 

Power Autoamte からも「既定の環境」で同じフローを編集することができます。


「When a Teams webhook request is received」という見慣れないトリガー(Power Automate で開くと日本語表記に…)ですが、Webhook要求を受信した時にチャネルにポストするシンプルなフローになっています。

 

「When a Teams webhook request is received」トリガー

トリガーのパラメータはシンプルに2つだけです。

設定が変更できるのは「フローをトリガーできるユーザー」1つだけです。

このトリガーに関して詳細はこちらのTeamsコネクタのリファレンスページに情報が掲載されていました。

learn.microsoft.com

 

【実験1】このトリガーを他のフローで使ってみる

フローデザイナーで開くとTeamsのアイコンですが、2024年7月10日時点ではPower Automate のフローデザイナーから追加することはできませんでした。

(2024-7-12追記)「Microsoft Teams Webhookコネクタ」として表示されていました!

 

(以降追記前のまま)

そこでフローごとコピーしてみると、WebhookのURLが変更されました。1つのURLで重複してフローが動作しないように考慮されている様です。

コピーしたフローも問題なく動作します。オリジナルフローのメッセージに表示されていた「{フロー所有者名} used a Workflow template to send this card. Get template」表示がなくなっていますが動作は問題ありません。


このトリガーを使えば、受信したメッセージを元に異なる動作をするフローを作ることができそうです。

 

【実験2】このトリガーを含むフローを他の環境にインポートしてみる

このフローをエクスポートして、別環境にインポートしてみます。

特に問題なくインポートに成功し、フローの編集・保存もOKです。

動作も問題ありませんでした。

 

【実験3】このトリガーを含むフローをソリューションに追加すると…

しかし、このフローをソリューションに追加してみると、下記のエラーが発生し保存できなくなりました。

Flow clientdata is in invalid format. Details: "Error converting value "TeamsWebhook" to type 'System.Nullable`1[Microsoft.Crm.ObjectModel.FlowTemplateOperationKind]'. Path 'triggers.manual.kind'.".

 

 

少なくともこの記事作成時点ではソリューションには対応していない様です。

 

 

参考にしたサイト/ページ

Incoming Webhookに要求するフローを作成するのに参考にさせていただきました。

mofumofupower.hatenablog.com

 

mokudai.jp

 

Office 365 コネクタ廃止に関する記事

devblogs.microsoft.com

 

「When a Teams webhook request is received」トリガー

learn.microsoft.com

 

 

続きます

新しいIncoming Webhook設定ではメッセージが通知されないケースがあったので続きます。

 

sasami-axis.hatenablog.com