検証に手間取り投稿が最終日まで伸びてしまった…。
Power AppsとTeamsの間にはコネクタが存在し、様々なアクションを行えます。
コネクタの概要 - Microsoft Teams
それに加えてURIやDeep linkを使うとコネクタ単体では出来ない操作が出来るので、今回はリファレンスが存在しているものを紹介していきます。
Create deep links to content and features in Microsoft Teams
#TeamsのURI
記述 | スキーマ | 対応デバイス |
---|---|---|
msteams: | URI | PC |
android-app://com.microsoft.teams/ | URI | Android |
未所持なので不明 | iPhone | |
https://teams.microsoft.com/ | Deep link | マルチデバイス |
基本的にhttps://teams.microsoft.com/
を使っていれば問題は起こらない筈。
#新しくチャットを作る
コネクタでは出来ない事の一つ目は新規チャットの作成です。
相手を複数指定する事も出来ます。
Launch("msteams:l/chat/0/0","users","user1@mail.com,user2@mail.com","topicName","テストのチャット","message","プリセット")
Launch("https://teams.microsoft.com/l/chat/0/0","users","user1@mail.com,user2@mail.com","topicName","テストのチャット","message","プリセット")
##URLの構造
https://teams.microsoft.com/l/chat/0/0?users=...
https://teams.microsoft.com/l/chat/Thread ID/Message ID ? Parameter
###Thread ID
チャンネルのID
ブラウザでこの画面を表示した時のURLにおける19:Thread ID@thread.skype
。
https://teams.microsoft.com/_#/conversations/チーム名?threadId=19:Thread ID@thread.skype&ctx=channel
0
だと特に指定しない扱いになる。
今回はチャットの新規作成のため、必ず0
になる。
###Message ID
チャンネル内チャットメッセージの個別ID
0
だと特に指定しない扱いになる。
###パラメータ
####users
必須。
チャットの相手。
ユーザー個人のUPN(メールアドレスではない)、またはオーガナイザー ID。
,
区切りで複数指定可能。
このDeep Linkをクリックしたユーザーは自動的に参加者として含まれるので、usersに含む必要はありません。
UPNとオーガナイザー IDはOffice365ユーザー.UserProfileV2で取得できる。
該当するフィールドはuserPrincipalName
とid
。
####topicName
省略可能。
自分を含め三人以上でチャットを行う場合、チャットの表示名を設定できる。
####message
省略可能。
このURL経由でチャットを開いた時、チャットメッセージ作成ボックスにプレ入力するテキストを指定できる。
#会議の予約
会議の予約画面を、一部項目を入力した状態で立ち上げる事が出来ます。
Launch("msteams:l/meeting/new","attendees","user1@mail.com","subject","会議の予約","content","詳細はここ",""startTime","2019-12-25T00:00:00+09:00","endTime","2019-12-26T00:00:00+09:00")
Launch("https://teams.microsoft.com/l/meeting/new","attendees","user1@mail.com","subject","会議の予約","content","詳細はここ","startTime","2019-12-25T00:00:00+09:00","endTime","2019-12-26T00:00:00+09:00")
##URLの構造
https://teams.microsoft.com/l/meeting/new?attendees=...
https://teams.microsoft.com/l/meeting/new ? Parameter
meeting/new以外の組み合わせや動作を確認できなかったので、固定と思われる。
###パラメータ
####attendees
省略可能。
会議の出席者の相手。
ユーザー個人のUPN(メールアドレスではない)、またはオーガナイザー ID。
,
区切りで複数指定可能。
このDeep Linkをクリックしたユーザーは自動的に開催者として登録されるので、含む必要はありません。
####startTime
省略可能。
会議の開始日時。
long ISO 8601 format、もしくはyyyy/mm/dd HH:MM:SS
かdd/mm/yyyy HH:MM:SS
。
yyyy-mm-dd HH:MM:SS
も通る。
####endTime
省略可能。
会議の終了日時。
仕様はstartTime
と同じ。
#番外編 : 会議への参加
Outlookの「新しいTeams会議」で生成されるリンクを利用する事で、会議に参加できる。
Launch("msteams:l/meetup-join/19:meeting_xxxx@thread.v2/0","context","{""tid"":""xxx-xxx-xxx-xxx"",""oid"":""xxx-xxx-xxx-xxx""}")
Launch("https://teams.microsoft.com/l/meetup-join/19:meeting_会議ID@thread.v2/0","context","{""tid"":""テナントID"",""oid"":""会議開催者のオーガナイザー ID""}")
##URLの構造
msteams:l/meetup-join/19:meeting_xxxx@thread.v2/0?context=...
msteams:l/meetup-join/Thread ID/Message ID ? Parameter
###Thread ID
会議のID
Teamsの予定表でも確認できる。
0
だとどのチャンネルにも紐付かない会議を開ける。
###Message ID
チャンネル内チャットメッセージの個別ID
0
だと特に指定しない扱いになる。
###パラメータ
####context
会議開催者を指定していること以外は不明。
テナントIDはAzure ADのtenant ID。
オーガナイザー IDは主催者のID。
#まとめ
-
コネクタでは出来ない事が出来る
- 二つとは言え、一々Teamsを開かなくてもアプリ上から出来るのは楽です。
-
テナントID以外はPower Apps上で取得できるデータを利用できる
- テナントIDが変わる事はまず無いと思うので特に問題ではない筈。
実はcall
とかリファレンスに載ってないけど動くURLもありましたが、サポート外と思われるので敢えて載せません。
もっと自由にPower AppsからTeamsを扱いたい方はMicrosoft Graph APIを使いましょう!
こちらはPreviewの機能もありますが、サポートされています。