20
25

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

PowerAppsAdvent Calendar 2019

Day 22

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

Last updated at Posted at 2019-12-25

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


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の機能もありますが、サポートされています。

20
25
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
20
25

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?