中村家では Microsoft Planner を使って家庭のタスク管理をしているのですが、タスク追加されたら Microsoft Teams に通知メッセージが飛ぶように Microsoft Flow でフローを作成しています。
タスクが追加されたらメッセージをポストする1トリガー1アクションだけ。これで別に問題なかったのですが、それは今までほとんど僕が Planner にタスクを追加してたから。
先日、年末にかけて忙しくなるので嫁さんにも気づいたタスクは追加するようにお願いしたところ、嫁さんがガシガシとタスクを追加してくれていたのですが、その晩に帰宅した時にこんな事を言われたんです。
「 Planner にタスクを追加したら Teams に通知が来るでしょ?あれを見ると私がタスクを追加したのに、太一くんがタスクを追加した感じになってるけど大丈夫?」と。おぉ!嫁さんも成長したなぁ!(注:嫁さんはIT全く疎い専業主婦)
▼嫁さんがタスク追加したのに僕が通知メッセージを送信しているので僕がタスクを追加したようにも思える
そうなんですよね。 Teams の通知メッセージのフローは僕が作成したので、僕が Teams にポストした事になるんですよね。それがちょっとややこしいとの事。今まで僕しかタスクを追加してこなかったから特に気にならなかった事。
さて、どうしようか?嫁さんには説明してるのでそういうものだと言えばOKだったりします。でもせっかく課題ができたので解決したいですよね。フロー用アカウントを作ってそのアカウントでフローを作成するという手もあります。また、発言者は変更できなくてもメッセージの中身にタスク追加者を表示させる方法もあります。そんな中、SNSで話をしたら色々と意見をもらいました。その中で「Webhook」を使うとイイぞ!という話が出て、その方法でやってみました。
まずは Teams 側での設定です。
▼通知メッセージを投稿させたいチャネルの[…]→[コネクタ]をクリック
▼コネクタから「 Incoming Webhook 」を追加
▼この名前が投稿者となります。アイコンはその投稿者のアイコン
(やはり Microsoft Planner のアイコンは額に深い傷のある怒ったアンパンマンっぽい…)
この作成したよっていう投稿をしない設定はないようなので、チームメンバーに知らせずに密かに作成する事はできなさそう。(タブ追加の場合は投稿で知らせる・知らせないを追加前に設定できるけど。)
▼構成済みの設定ではURLが生成されているので忘れずにテキストエディタなどに貼り付けておいてください
注意点として、 Teams ( Office 365 グループ )に紐づいているプランをここで追加したい場合は、最低限1回は対象となるプランにアクセスしましょう。そうしないとこの選択肢に追加したいプランは表示されません。アクセスするだけでOKです。
ココで僕は少しハマりました。トリガーで取得したこのタスク作成者を直接 Teams に投稿するアクションに指定したところ、表示名は表示されないし、ユーザーIDだけしか表示されないんですよね。SNS上でブツブツつぶやいていたら救世主が現れました。
▼それが Office 365 ユーザープロフィールの取得を間に入れる方法
ありがたやぁ~!色々考えてると頭が固くなってしまっていけませんね。スッカリ思いつきませんでした。なのでこの2番目のアクションに、トリガーで取得した作成者ユーザーIDを指定するのを噛ませているわけです。
本文を作ります。タグが使えるので<br>で改行しています。また、 Planner の該当タスクへのリンクを追加します。まず、マークダウンが使えるので、「 [リンク名](URL)」という表記が利用可能です。そしてタスクのURLに関してはトリガーで取得したタスクIDを利用します。(うまくご自身の環境に合わせてください。)
ここのURIに Teams のWebhookコネクタを作成した際に生成されたURLを入力します。本文はJSONで入力なのですが、僕自身もJSONよくわかりません。ただ、今回は非常にシンプルなのでこんな感じで入力すればOKです。
では全て設定が終わったのでテストを。
▼ Teams の対象チャネルを見ると Planner マンが通知メッセージしてくれています!
これでややこしい事にはならなさそうですね。
モバイルアプリでもタスクの詳細のリンクをタップすると、 Planner アプリに遷移してタスクがダイレクトに表示されます。
【参考にしたページ】
Microsoft Flow を使って Microsoft Teams へ投稿する