Help us understand the problem. What is going on with this article?

Power Apps から Microsoft Teams のチャットや会議を作成する

検証に手間取り投稿が最終日まで伸びてしまった…。


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の構造

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

image.png

0だと特に指定しない扱いになる。
今回はチャットの新規作成のため、必ず0になる。

Message ID

チャンネル内チャットメッセージの個別ID
image.png

0だと特に指定しない扱いになる。

パラメータ

users

必須。
チャットの相手。
ユーザー個人のUPN(メールアドレスではない)、またはオーガナイザー ID。
,区切りで複数指定可能。
このDeep Linkをクリックしたユーザーは自動的に参加者として含まれるので、usersに含む必要はありません。

UPNとオーガナイザー IDはOffice365ユーザー.UserProfileV2で取得できる。
該当するフィールドはuserPrincipalNameid
image.png

topicName

省略可能。
自分を含め三人以上でチャットを行う場合、チャットの表示名を設定できる。
image.png

message

省略可能。
このURL経由でチャットを開いた時、チャットメッセージ作成ボックスにプレ入力するテキストを指定できる。
image.png

会議の予約

会議の予約画面を、一部項目を入力した状態で立ち上げる事が出来ます。

新しい会議の予約
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の構造

URLの構造
https://teams.microsoft.com/l/meeting/new?attendees=...
https://teams.microsoft.com/l/meeting/new ? Parameter

meeting/new以外の組み合わせや動作を確認できなかったので、固定と思われる。

パラメータ

attendees

省略可能。
会議の出席者の相手。
ユーザー個人のUPN(メールアドレスではない)、またはオーガナイザー ID。
,区切りで複数指定可能。
このDeep Linkをクリックしたユーザーは自動的に開催者として登録されるので、含む必要はありません。
image.png

subject

省略可能。
会議のタイトル。
image.png

content

省略可能。
会議の詳細。
image.png

startTime

省略可能。
会議の開始日時。
long ISO 8601 format、もしくはyyyy/mm/dd HH:MM:SSdd/mm/yyyy HH:MM:SS
yyyy-mm-dd HH:MM:SSも通る。

image.png

endTime

省略可能。
会議の終了日時。
仕様はstartTimeと同じ。
image.png

番外編 : 会議への参加

Outlookの「新しいTeams会議」で生成されるリンクを利用する事で、会議に参加できる。

image.png
image.png

会議に参加
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の構造

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の予定表でも確認できる。
image.png

0だとどのチャンネルにも紐付かない会議を開ける。

Message ID

チャンネル内チャットメッセージの個別ID
image.png

0だと特に指定しない扱いになる。

パラメータ

context

会議開催者を指定していること以外は不明。
テナントIDはAzure ADのtenant ID。
オーガナイザー IDは主催者のID。

まとめ

  • コネクタでは出来ない事が出来る
    • 二つとは言え、一々Teamsを開かなくてもアプリ上から出来るのは楽です。
  • テナントID以外はPower Apps上で取得できるデータを利用できる
    • テナントIDが変わる事はまず無いと思うので特に問題ではない筈。

実はcallとかリファレンスに載ってないけど動くURLもありましたが、サポート外と思われるので敢えて載せません。
もっと自由にPower AppsからTeamsを扱いたい方はMicrosoft Graph APIを使いましょう!
こちらはPreviewの機能もありますが、サポートされています。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away