Power AppsでMicrosoft Teamsのスレッドに出退勤をポストする

Power Apps入門として、リモートワーク開始と終了時に、Microsoft Teamsのスレッドに出勤、退勤をポストするというユースケースをPower Appsで実装しました。
Power AppsでMicrosoft Teamsにおける特定チーム > チャネル > スレッドに返信する
Microsoft TeamsのAPIを利用するためには、Power AppsのConnector(コネクタ)であるMicrosoft Teamsを有効化します。
これにより、MicrosoftTeamsのAPIを利用できます。
特定のスレッドに返信する際は、MicrosoftTeams.PostReplyToMessageV2を利用します。
PostReplyToMessageV2
https://docs.microsoft.com/en-us/connectors/teams/#post-a-reply-to-a-message-(v2)-(preview)
| Name | Key | Required | Type | Description |
|---|---|---|---|---|
| Team | groupId | True | string | Add Team ID |
| Channel | channelId | True | string | Add Teams channel ID |
| Message | messageId | True | string | Add Teams message ID |
| Subject | subject | string | Subject of the message. | |
| Reply | content | True | html | Body of the message. |
groupId, channelId, messageIdの取得方法
ぶら下げたい大元のスレッドの右上3点リーダー >「リンクをコピーする」をクリックして、URLを取得する。

取得したURLをテキストエディタなどで表示して、次の該当箇所を取得する。
https://teams.microsoft.com/l/message/19:[email protected]/1611064421410?tenantId=8826071f-138f-4gc3-bf3a-0774182cbb26&groupId=58742cc7-f7ca-4df0-82fc-1aab7c6276c0&parentMessageId=1611064421410&teamName=sandbox&channelName=01_Channel&createdTime=1611064421410上記のURLの場合、groupId, channelId, messageIdは次のとおり。
- groupId: URLパラメタ
groupId58742cc7-f7ca-4df0-82fc-1aab7c6276c0
- channelId: message/{groupID}/
- messageId: URLパラメタ
parentMessageId1611064421410
Teamsのスレッドに返信する
上記で取得したgroupId, channelId, messageIdを利用してMicrosoftTeams.PostReplyToMessageV2を呼び出します。
これにより、Teamsの特定チーム > チャネル > スレッドに返信できます。
MicrosoftTeams.PostReplyToMessageV2(
{groupId},
{channelId},
{messageId},
{
content: Text(Now(),"[$-ja-JP]mm/dd") & " 在宅勤務開始",
contentType: "text"
}
)作ったPower Appsアプリ

まとめ
Power Appsの入門として出退勤をポストするアプリを作成してみました。
Connectorを利用して、画面を作り上げていく流れをなんとなく掴むことができました。
日頃の業務改善のため、小さいけど意外とメンドくさいことはどんどんPower AppsやPower Automateで自動化していきたい。