TeamsのステータスメッセージをPower Automate for cloudから設定する方法を紹介します。
- 出社状況などの確認がTeamsで完結する
- 定型文を毎回入力する必要が無くなる
- Power Automate for cloudの様々なトリガー(Power Apps や位置情報)から実行できる
といったメリットがあります。
入力する情報の設定・変換
ステータスメッセージを設定する前に情報を変換します。
設定するアクションだけ知りたい方は読み飛ばしてください。
トリガーの設定
今回は、手動でフローをトリガーしますを選択します。
そして、入力を以下に設定します。
![](https://powerplatformnikki.com/wp-content/uploads/2021/12/image-8.png)
トリガーは何でもいいですが、フローへの入力として設定するメッセージと何時間先までメッセージを設定するかという情報があるといいです。
時間の変換
設定のために時間の変換をする必要があります。時間の変換方法は覚えておくと便利です。
スケジュール→未来の時間の取得から、フローを実行した時間に設定する時間を足した時間を取得します。
![](https://powerplatformnikki.com/wp-content/uploads/2021/12/image-9.png)
スケジュール→タイムゾーンの変換から1つ前のアクションで足した時間を(UTC)協定世界時に変換します。
![](https://powerplatformnikki.com/wp-content/uploads/2021/12/image-10.png)
画像を参考に設定してください。
ステータスメッセージを設定するアクション
Teamsコネクタにステータスメッセージを設定するアクションは存在しませんので、SharePointコネクタのHTTP要求を送信するアクションを使用します。
![](https://powerplatformnikki.com/wp-content/uploads/2021/12/image-11.png)
こちらのアクションでTeamsのステータスメッセージを設定することが出来ます。
各プロパティを以下の様に設定します。
![](https://powerplatformnikki.com/wp-content/uploads/2021/12/image-13.png)
サイトのアドレス | https://presence.teams.microsoft.com |
方法 | PUT |
URI | /v1/me/publishnote |
ヘッダー | content-type | application/json |
ボディ | { "message": "設定するステータスメッセージ<pinnednote></pinnednote>", "expiry":@{body('タイム_ゾーンの変換')} } |
以下のテキストをペーストするとすぐに使えます。
{"id":"29622887-626c-4a2e-acd1-6dac57930c2a","brandColor":"#036C70","connectionReferences":{"shared_sharepointonline":{"connection":{"id":"/providers/Microsoft.PowerApps/apis/shared_sharepointonline/connections/26eb13aafb84473c8aa362103bcc9744"}}},"connectorDisplayName":"SharePoint","icon":"https://connectoricons-prod.azureedge.net/u/jayawan/releases/v1.0.1697/1.0.1697.3786/sharepointonline/icon.png","isTrigger":false,"operationName":"SharePoint_に_HTTP_要求を送信します","operationDefinition":{"type":"OpenApiConnection","inputs":{"host":{"connectionName":"shared_sharepointonline","operationId":"HttpRequest","apiId":"/providers/Microsoft.PowerApps/apis/shared_sharepointonline"},"parameters":{"dataset":"https://presence.teams.microsoft.com","parameters/method":"PUT","parameters/uri":"/v1/me/publishnote","parameters/headers":{"content-type":"application/json"},"parameters/body":"{\n\"message\": \"設定するステータスメッセージ<pinnednote></pinnednote>\",\n\"expiry\":@{body('タイム_ゾーンの変換')}\n}"},"authentication":{"type":"Raw","value":"@json(decodeBase64(triggerOutputs().headers['X-MS-APIM-Tokens']))['$ConnectionKey']"}},"runAfter":{}}}
サイトのアドレスを入力する際は、カスタム項目の追加からカスタム値としてURLを入力してください。
![](https://powerplatformnikki.com/wp-content/uploads/2022/06/image.png)
![](https://powerplatformnikki.com/wp-content/uploads/2022/06/image-1.png)
messageの末尾に <pinnednote></pinnednote> と入力すると、他のユーザーが自分にメッセージを送るときに表示するにチェックが入った状態で設定されます。
![](https://powerplatformnikki.com/wp-content/uploads/2021/12/image-15.png)
チェックを入れたくない場合は上記の文字列を末尾に入力しなければOKです。
また、expiryには協定世界時の時間を設定してください。
![](https://powerplatformnikki.com/wp-content/uploads/2024/08/image-57.png)
またモダンデザイナーでこのフローを作成すると「有効な JSON を入力してください」というエラーが表示されるようです。(2024/8/8現在)
このエラーが表示される場合は、クラシックデザイナーに切り替えてフローを作成してください。
まとめ
Teamsのステータスメッセージを手軽に設定できるようになり、非常に便利です。
みんなに設定方法をよく聞かれるようになりました。
ささみさんが詳細な具体的な活用例を紹介しています。
コメント
いつもためになる情報をありがとうございます
説明されている方法でフローを作ってみたのですが、最後のSharePointにHTTP要求を~のアクションでエラーが出てしまい先に進めませんでした。
具体的にはサイトのアドレスを指定する部分でして、指定のとおり入力すると
「サイト アドレスを見つけることができません。ドロップダウンでサイト アドレスを選択してみてください。」と入力欄の下に赤文字で表示されます。
この状態でも保存してフローを実行することはできましたが、やはりエラー(*)でした。
インターネットの情報を探してみましたが、参考になるものを見つけることができず、対応方法をご存じでしたらご教示いただければ幸いです。
エラーメッセージは以下の通りです
{
“statusCode”: 400,
“headers”: {
“Pragma”: “no-cache”,
“x-ms-request-id”: “b96634ec-e88a-4e51-b71d-4e1d0fcac457”,
“Strict-Transport-Security”: “max-age=31536000; includeSubDomains”,
“X-Content-Type-Options”: “nosniff”,
“X-Frame-Options”: “DENY”,
“Cache-Control”: “no-store, no-cache”,
“Set-Cookie”: “ARRAffinity=417d241e95568378202af11f383a7ca6d1ae040fce5b56060d9d7065e5e1e33b;Path=/;HttpOnly;Secure;Domain=sharepointonline-je.azconn-je-001.p.azurewebsites.net,ARRAffinitySameSite=417d241e95568378202af11f383a7ca6d1ae040fce5b56060d9d7065e5e1e33b;Path=/;HttpOnly;SameSite=None;Secure;Domain=sharepointonline-je.azconn-je-001.p.azurewebsites.net”,
“Timing-Allow-Origin”: “*”,
“x-ms-apihub-cached-response”: “false”,
“x-ms-apihub-obo”: “true”,
“Date”: “Mon, 04 Apr 2022 01:36:49 GMT”,
“Content-Length”: “324”,
“Content-Type”: “application/json”,
“Expires”: “-1”
},
“body”: {
“status”: 400,
“message”: “{\”message\”:\”The request is invalid.\”,\”modelState\”:{\”incomingNote.messsage\”:[\”An error has occurred.\”,\”An error has occurred.\”]}}\r\nclientRequestId: b96634ec-e88a-4e51-b71d-4e1d0fcac457″,
“source”: “https://presence.teams.microsoft.com/v1/me/publishnote”,
“errors”: []
}
}
回答遅くなりました。
カスタム値としてURLを入力していないのではないでしょうか?
手順の画像を追加しましたのでご確認ください。
参考にさせていただいていたのですが、
最近新しいteamsになってからステータスメッセージが変わらなくなってしまいました。
何か原因等に心当たりがありましたら教えていただけないでしょうか。
コメントありがとうございます。お返事が遅くなり大変申し訳ありません。
私の環境では新しいTeamsでも問題なく動作しました。
代替手段としてプレビューですが、ささみさんが勤務場所を指定するフローの作り方を紹介していますので参考になれば幸いです。
https://sasami-axis.hatenablog.com/entry/2023/06/30/112909