👎

office365コネクタ(Teams Webhookなど)の廃止

2024/07/10に公開

https://devblogs.microsoft.com/microsoft365dev/retirement-of-office-365-connectors-within-microsoft-teams/

tl:dr;

  • office365コネクタ(Teams Webhookなど)が2024/10/1に完全に廃止される

  • TeamsのWebhookの移行は設定が面倒なので、今対応するのは非推奨

  • 移行先はPower Automateになるが、用意されているWebhookテンプレートにそのまま移行できないケースが多い

  • 批判が多いので、少しの期間様子見

office365コネクタとは

サードパーティのサービスをMicrosoft Teamsと連携するドライバのこと

Teamsのチャネルにコネクタを接続することで、各種外部サービスの更新をそのサービスを開くことなく確認することができていた。

よく使われるものとして

  • Webhook
  • Trello
  • Github

などが挙げられる。

2024/10で完全に廃止

機能性とセキュリティの観点からoffice365コネクタは段階的に廃止されることになった

2024/08/15 新しいコネクタの作成ができなくなる
2024/10/01 すべてのコネクタを廃止

Microsoftは既存のコネクタをPower Automateに切り替えるように推奨している

PowerAutomateのWebhookテンプレート

公式は移行先としてPowerAutomateを推奨している

  1. (初回のみ) Teams > AppsからWorkflowsを追加する

  2. Workflows > New flow もしくはCreateタブを開く

  3. Search templates > 使用したいテンプレートをクリック

  4. Flow nameにワークフロー名を入力 > Next

  5. Webhook通知したいTeamsとChannelを指定する > create flow

  6. Webhook URLが発行され完成

既存のWebhookをそのまま移行できない

終わってるなMicrosoft

新しく作成したWebhook URLに対して、元々使っていたWebhookへのリクエストをそのまま実行しても以下のエラーが発生した

ExpressionEvaluationFailed

The execution of template action 'Send_each_adaptive_card' failed: the result of the evaluation of 'foreach' expression '@triggerOutputs()?['body']?['attachments']' is of type 'Null'. The result must be a valid array.

どうやらbodyの中にattachmentsがなかったかららしい。

なぜそのまま移行できないのかよくわからないが、リクエストのスキーマを合わせないといけないらしい。

Postmanでテスト

  • Content-Type: “application/json”
{
   "type":"message",
   "attachments":[
      {
         "contentType":"application/vnd.microsoft.card.adaptive",
         "content":{
            "$schema":"http://adaptivecards.io/schemas/adaptive-card.json",
            "type":"AdaptiveCard",
            "version":"1.2",
            "body":[
               {
                  "type":"TextBlock",
                  "text":"This is notification",
                  "color":"warning"
               }
            ]
         }
      }
   ]
}

こうすると次のようにメッセージが送信される

アカウント名が表示されてしまっている。
PowerAutomateがアカウントに紐づいて作成されてしまうせいでこのような表示になっているようだ。

投稿者を変えたいけど…

投稿者を変えるには、フローの編集ページ > Post your own adaptive card as the Flow bot to a channelの設定を開く

選択肢としていくつかある。
デフォルトはフローボットで、先ほどのメッセージはFlow botとして投稿されている。
ユーザーだと、このフローのオーナーアカウント名が表示される
結局、従来のWebhookとして使うならカスタム値の入力をすることになる。

ただこのカスタム値の入力をしてみるとエラーになってしまう。

動的な入力を取得できませんでした。エラーの詳細: 'The dynamic operation request to API 'teams' operation 'GetUnifiedActionSchema' failed with status code 'BadRequest'. This may indicate invalid input parameters. Error response: { "error": { "code": "MissingOrInvalidPosterType", "message": "指定された Teams flowbot 受信者の種類が見つからないか、無効です。" } }'

ここまでやってアホくさくなってきたので中断。

公式でも批判の嵐なので、様子見することにした。

Discussion