Slide 1

Slide 1 text

Teamsと Teamsコネクタ について 気ままに勉強会 #50,65,67,71 1

Slide 2

Slide 2 text

今日の目標 Teams のキホンと Teams コネクタの 仕様を知ろう 2

Slide 3

Slide 3 text

アジェンダ Teamsコネクタ とは Teamsコネクタ の Action たち Teamsコネクタ の Trigger たち 3

Slide 4

Slide 4 text

Miyake @MiTo60448639 https://qiita.com/MiyakeMito 株式会社アイシーソフト Technical Manager www.icsoft.jp https://speakerdeck.com/miya kemito 4

Slide 5

Slide 5 text

connpass (独立発行者) コネクタ が認定されました 5 https://learn.microsoft.com/ja-jp/connectors/connpassip/ イベント情報のキャッチ や管理などに便利です 是非ご活用ください!

Slide 6

Slide 6 text

本日の参考サイト 6 ◼ Microsoft Teamsコネクタ のドキュメント(Microsoft Learn) https://learn.microsoft.com/ja-jp/connectors/teams/ ◼ MoreBeerMorePower(Hiroさん) https://mofumofupower.hatenablog.com/ ◼ ルドルフもわたるふもいろいろあってな(わたるふさん) https://wataruf.hatenablog.com/

Slide 7

Slide 7 text

免責事項 当スライドは、 2023年 10月現在のバージョンでの情報です 今後のアップデート等により、 仕様変更する可能性があります また、私の見解による内容が含まれます 間違いなどありましたらご指摘ください 7

Slide 8

Slide 8 text

Teamsコネクタ とは

Slide 9

Slide 9 text

Teamsコネクタのトリガー 9 10 トリガー! 日本語には反応しない 日本語にも反応するようになった!

Slide 10

Slide 10 text

Teamsコネクタのアクション 2023年3月時点 10 チャットやチャネルにアダプティブカードを投稿する 28 アクション!

Slide 11

Slide 11 text

11 メンバーリストを作成 New!! Teamsコネクタのアクション 2023年8月時点 29 アクション!

Slide 12

Slide 12 text

12 Teamsコネクタのアクション 2023年10月時点 29 アクション!

Slide 13

Slide 13 text

Teamsコネクタのアクション ① 13 5 チームにメンバーを追加する この操作はメンバーをチームに追加します。 6 チームの作成 この操作は新しいチームを作成します。 23 チームの一覧を表示する この操作では、メンバーになっているすべての Teams (Office 365 Groups) のリストを取得します。 24 チームを取得する この操作を実行すると、チームの一意の ID を使用してチームの詳細が返されます。 チーム 関連 26 チャネルの一覧表示 この操作は、特定のチームのすべてのチャネルの一覧を取得します。 27 チャネルを作成する この操作は特定のチームの新しいチャネルを作成するために使用されます。 チャネル 関連 7 チャットの作成 この操作により、1対1またはグループ チャットが作成されます 25 チャット一覧を作成 この操作により最近のチャットの一覧が取得されます。 チャット 関連 15 メンバー リストを作成 この操作により、1対1またはグループ チャットが作成されます メンバー 関連

Slide 14

Slide 14 text

Teamsコネクタのアクション ② 14 16 タグからメンバーを削除する この操作はタグからメンバーを削除します。 17 タグにメンバーを追加する この操作によってユーザーがタグに追加されます。 19 タグのメンバーを一覧表示する この操作はタグのメンバーを一覧表示します。 20 タグを削除する この操作はタグを削除します。 21 チームのタグをすべて一覧表示する この操作によりタグの一覧を取得します。 22 チームのタグを作成する この操作はタグを作成します。 タグ 関連 18 タグの @mention トークンを取得する この操作は、トークンを作成してメッセージやアダプティブ カードに挿入し、チャネルが含むユーザーとし て @mention にタグを送信します。 29 ユーザーの @mention トークンを取得する この操作は @mention 対象のユーザーに、メッセージやアダプティブカードに挿入できるトークンを作成します。 メンション 関連 2 Teams 会議の作成 招待状の下部にあるリンクから会議を作成して Teams のオンライン会議に参加する Teams 会議関連

Slide 15

Slide 15 text

Teamsコネクタのアクション ③ 15 8 チャットまたはチャネルでメッセージを投稿する この操作を実行すると、チャットまたはチャネルにメッセージが投稿されます。 12 チャネル内のメッセージで応答します この操作はチャネルのメッセージで応答します。 13 メッセージを取得する この操作は、特定のチームのチャネルからメッセージを取得するために使用されます。 14 メッセージ詳細を取得する この操作により、チャットまたはチャネル内のメッセージ詳細が取得されます。 メッセージ 関連 3 アダプティブ カードを投稿して応答を待機する この操作により、アダプティブ カードをチャットやチャネルに投稿し、応答を待機します。 4 オプションの選択をフローボットとしてユーザーに投稿する Teams ユーザーにメッセージを送信するプロセスを簡単に自動化するもので、このメッセージには、 応答する前に選択する必要のある一連のオプションが含まれています。 9 チャットやチャネルにカードを投稿する この操作により、カードがチャットやチャネルに投稿されます。 10 チャットやチャネルのアダプティブ カードを更新する この操作を実行すると、既存のアダプティブ カードが更新されます。 11 チャネル内でアダプティブ カードを使用して返信する この操作により、チャネルへの返信がアダプティブ カードを使用して行われます。 1 Teams のタスク モジュールで応答 この操作を実行すると、Microsoft Teams の既存のタスク モジュールにあるアダプティブ カードで 応答することができます。 アダプティブカード 関連 28 フィード通知を投稿する この操作によりフィード通知が投稿されます。 フィード通知 関連 次ページ 参照

Slide 16

Slide 16 text

Teamsコネクタのわかりにくいアクション 16 ➢ 個人のチャットに対し、選択肢とコメントを求めるアダプティブカードを送信し、ユー ザーの応答を待ち合わせる ➢ 「アダプティブ カードを投稿して応答を待機する」に比べ手軽 (個人チャットかつ簡易なデザイン限定で) ➢ 下記 Teamsコネクタのトリガーで実行されるフローで、アダプティブカードで応答する 場合に使用する ✓ 「選択されたメッセージに対して」 ✓ 「作成ボックスから」

Slide 17

Slide 17 text

チームIDとチャネルIDの取得方法 17 Microsoft Teams のチームID、チャネルIDの確認方法(山田さん) https://qiita.com/yamad365/items/e480f77e9102b132d258 ◼ チームID(M365グループID) Teams管理センターでも可能 (こちらの方がカンタンかも) ◼ チャネルID(conversationId、会話ID) チームへのリンクを取得 https://teams.microsoft.com/l/team/~/conversations ?groupId=<チームID>&tenantId= ~ 該当のチャネルを選び、 URLを確認 https://teams.microsoft.com/_#/conversations/<チャネル名> ?threadId=<チャネルID>&ctx=channel 19:f8c4deeda62a49a6ae13c00e 1dxxxxxx@thread.tacv2 のような値 00794145-462d-4a3c-9505-8e4eexxxxxxc のような値

Slide 18

Slide 18 text

チャットIDの取得方法 18 ◼ チャットID(conversationId、会話ID) 該当のチャットを選び、 URLを確認 hthttps://teams.microsoft.com/_#/conversations/ <チャットID>?ctx=chat 19:bef8991a-5f76-462d-a8d8-15d505d752ad_da46df74-8329-4857-xxxxxxxxx@unq.gbl.spaces(1対1チャット) や 19:35784152e39848ed8f7e55xxxxxxxxx@thread.v2(グループチャット) のような値

Slide 19

Slide 19 text

メッセージID の取得方法 Teams へメッセージ送信するアクションや、応答を受信するトリガーなどでメッセー ジIDが取得できます(動的コンテンツ) Teams コネクタのトリガーやアクションなど 「動的なコンテンツ」でメッセージID を取得可能 また、投稿したメッセージで「リンクをコピー」すると、URL内からも取得可能です 19 https://teams.microsoft.com/l/message/ [チャネルID]/ [メッセージID]? ~ 中略 ~ &parentMessageId= [親メッ セージID] &teamName= ~ 略

Slide 20

Slide 20 text

20 ◼ チャネルチャットのメッセージID ◼ 1対1チャット や グループチャットのメッセージID チームID チャネルID チャットID 子(応答)メッセージの [replyToId] が親(スレッドの先頭 のメッセージIDを保持する テナント:テナントIDで一意 メッセージID replyToId メッセージID メッセージID テナント:テナントIDで一意 チャットIDの代わりにチャネルIDを 指定可能なアクションがいくつかある

Slide 21

Slide 21 text

Teamsコネクタ の Actionたち

Slide 22

Slide 22 text

チームを操作する

Slide 23

Slide 23 text

チームの種類 23 ■ パブリック ➢ 組織に所属するユーザーなら誰でも自由に参加可能 ■ プライベート ➢ メンバー追加に制限がある (チーム所有者が追加する) ■ 組織全体 ➢ 組織内の全ユーザーが自動的に参加する ➢ 組織全体で5つまで作成可能 ➢ ライセンス未付与のユーザーもチームに追加される。 ライセンスのないユーザーが初めて Teams にサインインすると、 Microsoft Teams Exploratoryライセンスが割り当てられる

Slide 24

Slide 24 text

24 チーム チーム所有者 参加方法 参加していないメンバーか らの見え方 ゲスト参加 SharePoint Onlineサイト パブリック チーム作成者 チーム所有者が任命 チーム所有者が追加 組織内のユーザーなら自由 に参加可能 表示 (「チームに参加」から) 可能 専用サイトが作成される プライベート チーム作成者 チーム所有者が任命 チーム所有者が追加 メンバーからの申請を所有 者が承認する(※1) 所有者がチームコードを生 成し伝える 非表示 可能 専用サイトが作成される 組織全体 以下ロールを割り当てられた ユーザーが自動的に ・グローバル管理者 ・Teams管理者 チーム所有者が任命 組織内のアクティブなユー ザー 以下は除く ・ゲスト ・リソース ・共有メールボックス - 可能 専用サイトが作成される チームの比較 (※1 参加したいユーザーが、チームのリンクからアクセスすることで申請する方法もある)

Slide 25

Slide 25 text

25 チームを作成する チームの操作

Slide 26

Slide 26 text

チームの作成 26 ◼ 新規にチームを作成する ◼ プライベートチーム、またはパブリックチームを作成可能 ◼ Microsoft 365グループ、SharePoint サイトも作成される ◼ チームには「一般」チャネルが作成される 組織全体のチームは 作成できません Private Public

Slide 27

Slide 27 text

出力仕様 ① 27 ◼ チーム ➢ フローの実行者は、チームの所有者になる ◼ SharePoint Online ➢ フローの実行者は、 サイト管理者および、Members(SPOgroup)に所属

Slide 28

Slide 28 text

出力仕様 ② 28 ◼ Microsoft 365グループ ➢ フローの実行者がグループの所有者およびメンバーになる ➢ メールアドレスのアカウント ✓ チーム名に半角英数が含まれない:msteams_xxxxx@~ ✓ チーム名に半角英数が含まれる :チーム名の半角英数部分@~ ➢ GALに表示しないがONとなる

Slide 29

Slide 29 text

作成したチームの設定 29 メンバーにチャネルの作成と更新を許可する オン メンバーにプライベート チャネルの作成を許可する オン メンバーにチャネルの削除と復元を許可する オン メンバーにアプリの追加と削除を許可する オン メンバーにカスタム アプリのアップロードを許可する オン メンバーにタブの作成、更新、および削除を許可する オン メンバーにコネクタの作成、更新、および削除を許可する オン メンバーに自分のメッセージを削除するオプションを与える オン メンバーに自分のメッセージを編集するオプションを与える オン メッセージで Teams をメンションする オン メッセージでチャネルをメンションする オン ゲストはチャンネルを追加および編集できる オフ ゲストはチャンネルを削除できる オフ Giphy オン Giphy コンテンツの評価 中レベル ステッカーとミーム オン カスタム ミーム オン メッセージのアクセス許可 メンション ゲストのアクセス許可 楽しい設定 これらを設定しながらチームを作成 する場合はGraph APIを利用します https://learn.microsoft.com/ja- jp/graph/api/team-post?view=graph- rest-1.0&tabs=http タグ タグを管理できるユーザー チームの所有者 他のアプリのタグを自動的に適用する オン 標準チャネルのみ可能

Slide 30

Slide 30 text

Microsoft 365グループ作成制限 30 ◼ チームの作成が可能なユーザーを制限することが可能 ➢ Microsoft 365 グループを作成できるユーザーを管理する https://learn.microsoft.com/ja-jp/microsoft-365/solutions/manage- creation-of-groups?view=o365-worldwide&WT.mc_id=M365-MVP- 5000493 ◼ 当然、制限されているユーザーではPower Automateからも作成不可 • チームの作成は情シスに依頼 • 情シスにてチーム作成後、依頼者 を所有者に設定 という運用のお供に・・・

Slide 31

Slide 31 text

所有者権限を削除する 31 ◼ フローの実行者は自動的に作成されたチームの所有者(M365グループ所有者) の権限が付与される ◼ 所有者権限をはく奪する際はGraph APIを使用し、メンバーに降格させる ◼ さらにグループから除外する場合は、 ◼ https://learn.microsoft.com/ja-jp/graph/api/group-delete-owners?view=graph-rest-1.0&tabs=http https://graph.microsoft.com/v1.0/groups/{id}/ owners/{id}/$ref DELETE application/json チームID (M365グループID) userId Office 365 Users コネクタ (M365管理センター等からも取得可能) Office 365 Groups コネクタ

Slide 32

Slide 32 text

32 チームを一覧表示する チームの操作

Slide 33

Slide 33 text

チームの一覧表示 33 ◼ フロー実行者が所有者またはメンバーになっているすべての Teams (Office 365 Groups) のリストを取得する ◼ チームごとに取得できる項目は、チームID(M365グループID)、表示名、 詳細、アーカイブ状態、テナントID

Slide 34

Slide 34 text

34 "body": { "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#teams", "@odata.count": 2, "value": [ { "id": "00794145-462d-4a3c-9505-8e4ee100935c", "displayName": "PVAfT", "description": "Power Virtual Agent サンドボックス", "isArchived": false, "tenantId": "552440ee-891d-4f5a-b78e-13d0a3fa1dd4" }, { "id": "fc2ec21d-5c5e-4603-8acf-faace4d4dfbf", "displayName": "Sample Engineering Team", "description": "This is a sample engineering team", "isArchived": false, "tenantId": "552440ee-891d-4f5a-b78e-13d0a3fa1dd4" } ] } 出力 チームID チームの表示名 チームの詳細 アーカイブ済みか テナントID 開始位置の座標 とサイズ 様々なTeamsコネクタのアクショ ンで利用する アーカイブの有無に関わらずfalse が出力される模様

Slide 35

Slide 35 text

35 チームの詳細を取得する チームの操作

Slide 36

Slide 36 text

チームの取得 36 ◼ チームの一意の ID を使用し、チームの詳細を取得する ◼ 取得できる詳細項目は次ページ参照

Slide 37

Slide 37 text

37 1階層 2階層 説明 id - チームID createdDateTime - チーム作成日時 displayName - 表示名 description - チームの説明 internalId - 内部ID specialization - ??? visibility - public(組織全体も) / private webUrl - チームの Web URL isArchived - アーカイブ済みか isMembershipLimitedToOwners - メンバーの追加を禁止 discoverySettings showInTeamsSearchAndSuggestions Teams の検索とサジェストに表示する memberSettings allowCreateUpdateChannels チャネルを追加および編集する allowCreatePrivateChannels プライベート チャネルの追加と編集 allowDeleteChannels チャネルの削除 allowAddRemoveApps アプリを追加、編集、または削除する allowCreateUpdateRemoveTabs タブを追加、編集、または削除する allowCreateUpdateRemoveConnectors コネクタを追加、編集、または削除する guestSettings allowCreateUpdateChannels ゲストはチャンネルを追加および編集できる allowDeleteChannels ゲストはチャンネルを削除できる messagingSettings allowUserEditMessages 送信済みメッセージを編集する allowUserDeleteMessages 送信済みメッセージを削除する allowOwnerDeleteMessages チーム所有者が送信したメッセージを削除する allowTeamMentions メッセージで Teams をメンションする allowChannelMentions メッセージでチャネルをメンションする funSettings allowGiphy Giphy giphyContentRating Giphy コンテンツの評価 allowStickersAndMemes ステッカーとミーム allowCustomMemes カスタム ミーム summary ownersCount チーム所有者の数 membersCount チームメンバーの数 guestsCount チームのゲストユーザーの数

Slide 38

Slide 38 text

38 チームを削除する チームの操作

Slide 39

Slide 39 text

チームを削除する 39 ◼ Microsoft 365グループを削除することで、チームも削除可能 ◼ グループの削除は、[Office 365 Groups]コネクタの[HTTP 要求 V2 を送信する]ア クションを利用し、Graph API による削除を行う ◼ SPOサイトも削除される ◼ https://learn.microsoft.com/ja-jp/graph/api/group-delete?view=graph-rest-1.0&tabs=http Teamsコネクタに、チームを削除 するアクションは存在しません https://graph.microsoft.com/v1.0/groups/{id} DELETE application/json チームID (M365グループID) Office 365 Groups コネクタ

Slide 40

Slide 40 text

40 チームにメンバーを 追加する チームの操作

Slide 41

Slide 41 text

チームにメンバーを追加する ① 41 ◼ チームにメンバーを追加する ◼ 所有者またはメンバーとして追加可能 (当然だが、ゲストユーザーは所有者にできない) はい いいえ ゲストユーザーを指定する場合は AAD ID で指定 (UPN で指定は不可)

Slide 42

Slide 42 text

チームにメンバーを追加する ② 42 ◼ Microsoft 365グループにメンバーを追加することで、チームにメンバー を追加可能 ◼ チーム所有者として登録することは不可 ゲストユーザーを UPNで追加可能 [email address]#EXT#@[テナント名].onmicrosoft.com Office 365 Groups コネクタ

Slide 43

Slide 43 text

43 チームメンバーを 一覧表示する チームの操作

Slide 44

Slide 44 text

チームメンバーを一覧表示する 44 ◼ Microsoft 365グループのメンバーを取得することで、チームメンバー一 覧を取得できる Office 365 Groups コネクタ

Slide 45

Slide 45 text

45 チームからメンバーを 削除する チームの操作

Slide 46

Slide 46 text

チームからメンバーを削除する 46 チーム名 ◼ Microsoft 365グループからメンバーを削除することで、チームからも削 除可能 ◼ メンバーの削除は、[Office 365 Groups]コネクタの[グループからメン バーを削除]アクションを利用する Office 365 Groups コネクタ

Slide 47

Slide 47 text

チャネルを操作する

Slide 48

Slide 48 text

チャネルの種類 48 ■ 標準 ➢ 全チームメンバーに共有され、自動的に所属する ■ プライベート ➢ チームメンバーを限定し共有可能 ➢ 参加するには招待される必要がある ■ 共有 ➢ チームメンバーまたは組織内外のユーザーと共有 ➢ 組織外:B2B 直接接続が必要 (B2Bコラボレーション不可)

Slide 49

Slide 49 text

テナントA チーム1 チーム2 テナントD チャネルメンバーの範囲 49 テナントC AAD B2B 直接接続 AAD B2B コラボレーション 標準 プライベート 共有 B2B 直接接続 ユーザー テナントB ゲストユーザー 外部チャット 外部ユーザー チームの 所有者 メンバー

Slide 50

Slide 50 text

50 チャネル チャネルの編集権 参加方法 参加可能 参加していないテナント内 メンバーからの見え方 SharePoint Onlineサイト 標準 チーム所有者 チーム内のメンバー全員が 自動的に参加 チームメンバーが自動的に 参加 ゲストユーザー 見えない (該当チームに参加してい ない共有チャネルメンバー から) 他の標準チャネルと共有 (チームに対応したサイ ト) プライベート チャネル所有者 チャネル所有者が招待 チームメンバー ゲストユーザー 見えない 個別のチャネル用サイトが 作成される 共有 チャネル所有者 チャネル所有者が招待 テナント内ユーザー B2B 直接接続ユーザー 見えない 個別のチャネル用サイトが 作成される チャネルの比較 https://learn.microsoft.com/ja-jp/microsoftteams/teams-channels-overview#channel-feature-comparison

Slide 51

Slide 51 text

共有チャネル 51 ■ Azure AD B2B コラボレーションによるゲストアクセスユーザー は参加不可 ➢ Azure AD B2B 直接接続による外部ユーザーで参加させる (要Azure AD Premium P1 ライセンス) ■ チーム外から招待されたメンバーは、チーム内の他のチャネル は見えない、がチーム名は見える 共有元 チームメンバーから 共有されたユーザーから

Slide 52

Slide 52 text

プライベート/共有チャネルを制限 52 ■ Microsoft Teams 管理 センター - チーム – Teamsのポリシー

Slide 53

Slide 53 text

53 ユーザー種類 招待可能となる ユーザ (招待されるユー ザーの状態) 招待の手順 チーム参加 チャット利用 ファイル共有 ビデオ通話 ゲストユーザー • Microsoft 365アカウ ント • Microsoftアカウント • ソーシャル ID プロバ イダー • ワンタイムパスコー ド認証による上記以 外のメールアカウン ト(*1) AADやM365管理画面 より登録 チームに招待される 事で参加可能 1対1チャット グループチャット チャネルチャット が可能 チーム内で共有可能 • プライベート通話 • IPビデオ通話 • 今すぐ会議 会議に招待される 外部ユーザー • Microsoft 365アカウ ント • Microsoftアカウント (Teamsが利用でき ること) 各ユーザーがTeams アプリの検索 (Microsoft Search)より 参加不可 招待したユーザーと の 1対1チャット グループチャット が可能 不可 • プライベート通話 • IPビデオ 会議に招待される B2B直接接続ユーザー • Microsoft 365アカウ ント • (Teamsが利用でき ること) AAD管理センター External Identities テナント間アクセス 設定 (互いのテナントで 設定する必要があ る) 共有チャネルに招待 されることで参加可 能 (ただしチーム内の 他のチャネルは不 可) チャネルチャットが 可能 招待されたチャネル 内で可能 • プライベート通話 会議に招待される 外部アクセス ユーザーの比較 (*1)https://learn.microsoft.com/ja-jp/azure/active-directory/external-identities/one-time-passcode

Slide 54

Slide 54 text

ゲストの制限 54 ■ Teams管理センター - チーム-チームを管理 - [チーム] - 設定 - ゲストのアクセス許可 – ゲストはチャンネルを追加および編集できる:ON/OFF – ゲストはチャンネルを削除できる:ON/OFF ■ Teams管理センター - ゲストアクセス – Teams へのゲスト アクセスを許可する:ON/OFF – 通話 - プライベート通話を行う:ON/OFF – 会議 ➢ ビデオ:ON/OFF ➢ 画面共有:画面全体/単一アプリケーション/禁止 ➢ 今すぐ会議 :ON/OFF – メッセージング ➢ 送信済メッセージを編集,送信済メッセージを削除,チャットの削除,チャット,会話での Giphy, Giphy コンテンツの評価,会議でのミーム,会話でのステッカー,メッセージ用のイマーシブ リー ダー ■ SharePoint管理センター – ポリシー – 共有 – 外部共有(SPO、ODfB) – コンテンツを共有できる相手 ➢ 自分の組織内のユーザーのみにすると、組織内のファイルをゲストに共有できない

Slide 55

Slide 55 text

外部アクセスの制限 55 ■ Teams管理センター – 外部アクセス – ユーザーがアクセスできる外部ドメインを選択します ➢ 外部ドメインをすべて許可する ➢ 特定の外部ドメインのみを許可する ➢ 特定の外部ドメインのみをブロックする ➢ 外部ドメインをすべてブロックする – 外部ドメインをすべて許可する ➢ :ON/OFF – 組織内のユーザーは、アカウントが組織によって管理されていない Teams ユーザーと通信できます ➢ :ON/OFF – 組織内のユーザーが Skype ユーザーと通信できるようにします。 ➢ :ON/OFF

Slide 56

Slide 56 text

56 チャネルを作成する チャネルの操作

Slide 57

Slide 57 text

チャネルの作成 57 ◼ 指定したチームに、新規のチャネルを作成する ◼ 標準チャネルのみ作成可能 (プライベートチャネル、共有チャネルは作成不可) ◼ チャネルを作成すると、チャネルIDが返る プライベートチャネルや共有チャネルを 作成する場合はGraph API を利用します https://learn.microsoft.com/ja- jp/graph/api/channel-post?view=graph- rest-1.0&tabs=http

Slide 58

Slide 58 text

作成したチャネルの設定 58 チャネルのモデレーション オフ 誰でも新規の投稿を開始できます オン ゲスト以外のだれでも新規の投稿を開始できます オン チャネルのモデレートを設定します 新しい投稿を開始できるのは誰ですか? チャネルのモデレートを設定すると、モ デレーターのみが投稿可能なチャネル 等の設定が可能です

Slide 59

Slide 59 text

59 チャネルを一覧表示する チャネルの操作

Slide 60

Slide 60 text

チャネルの一覧表示 60 ◼ 特定のチームのすべてのチャネルの一覧を取得する ◼ プライベートチャネル、共有チャネルの情報も出力される (チャネルの所有者、またはメンバーの場合のみ)

Slide 61

Slide 61 text

61 "body": { "@odata.context": "https://graph.microsoft.com/v1.0/・・・, "@odata.count": 7, "value": [ { "id": "19:cc47005ff12d40f18c1d4f1e00d75c08@thread.tacv2", "createdDateTime": "2023-02-07T12:40:49.456Z", "displayName": "Private Channel", "description": "for testing", "tenantId": "552440ee-891d-4f5a-b78e-13d0a3fa1dd4", "webUrl": "https://teams.microsoft.com/l/channel/19%3Acc47005ff12d40f18c1d4f1e00d75c08%40t ・・・", "membershipType": "private" }, { "id": "19:b0568b463e0a40a8876123d2271b4da4@thread.tacv2", "createdDateTime": "2022-05-28T12:30:40.415Z", "displayName": "Announcements 📢", "description": "This is a sample announcements channel that is favorited by default.", "isFavoriteByDefault": true, "tenantId": "552440ee-891d-4f5a-b78e-13d0a3fa1dd4", "webUrl": "https://teams.microsoft.com/l/channel/19%3Ab0568b463e0a40a8876123d2271・・・", "membershipType": "standard" }, 出力 チャネルID チャネルの表示名 チャネルの詳細 チャネルのURL 標準:standard プライベート:private 共有:unknownFutureValue 様々なTeamsコネクタのアクション で利用する 既定でチャネルを表示するか (trueの場合のみ項目が出力されるため注意)

Slide 62

Slide 62 text

62 チャネルを削除する チャネルの操作

Slide 63

Slide 63 text

チャネルを削除する 63 ◼ Teamsコネクタに、チャネルを削除するアクションは存在しない ◼ よって、[Office 365 Groups]コネクタの[HTTP 要求 を送信する]アクショ ンを利用し、Graph API による削除を行う ◼ https://learn.microsoft.com/ja-jp/graph/api/channel-delete?view=graph-rest-1.0&tabs=http https://graph.microsoft.com/v1.0/teams/{id}/ channels/{id} DELETE application/json チームID (M365グループID) Office 365 Groups コネクタ HTTP 要求 V2 を送信 する (Preview) ではサポートされない メソッドのため注意 チャネルID 2023/08 現在 [HTTP 要求 を送信する]アクションは Power Automateで新規利用不可となりました

Slide 64

Slide 64 text

チャネルを削除する 64 ◼ Teamsコネクタに、チャネルを削除するアクションは存在しない ◼ よって、[HTTP with Azure AD コネクタ]コネクタの[HTTP要求を呼び出し ます]アクションを利用し、Graph API による削除を行う ◼ https://learn.microsoft.com/ja-jp/graph/api/channel-delete?view=graph-rest-1.0&tabs=http https://graph.microsoft.com/v1.0/teams/{id}/ channels/{id} DELETE Content-type: application/json チームID (M365グループID) HTTP with Azure AD コネクタ > HTTP要求を呼び 出します チャネルID プレミアムコネクタです コネクタの使い方は下記参照 Graph API について

Slide 65

Slide 65 text

チャットを操作する

Slide 66

Slide 66 text

チャットの種類 66 ■ 1対1チャット ➢ 特定のユーザーと個別にチャット ■ グループチャット ➢ 複数の特定ユーザーとチャット ■ 会議チャット ➢ Teams 会議の参加者で共有できるチャット ■ チャネルチャット ➢ チャネル上で、チームに所属するメンバーとチャット

Slide 67

Slide 67 text

67 チャットを作成する チャットの操作

Slide 68

Slide 68 text

チャットの作成 68 ◼ 1対1またはグループ チャットを作成する ◼ チャットごとに最大 20 人のユーザーを処理可能 ◼ チャットが作成されると、会話IDが返る ◼ 1対1チャットの場合、Teams上にチャットは表示されない このアクションで、 ゲストユーザーをチャットのメン バーに追加することはできません 複数人を設定する場合は、 " ; "(セミコロン)で区切る 末尾に " ; " を付与するとエラーとなる

Slide 69

Slide 69 text

69 チャットを一覧表示する チャットの操作

Slide 70

Slide 70 text

チャットの一覧表示 70 ◼ 最近のチャットの一覧を取得する ◼ 1対1チャット、グループチャット、会議チャットが取得できる ◼ 取得するチャットの種類を条件を絞ることができる ➢ すべてのチャット ➢ 定義済み ➢ 未定義 ➢ すべてのチャットの種類 ➢ グループ ➢ 会議 ➢ 1対1 2023/08/14 未定義を選択してもフィルターされない模様

Slide 71

Slide 71 text

71 "body": { "value": [ { "id "19:a6ad5f40ae764e65b39d006fcf549a4f@thread.v2", "cre":atedDateTime": "2023-02-09T13:28:00.823Z", "lastUpdatedDateTime": "2023-02-09T13:28:00.823Z" }, { "id": "19:meeting_YjhlNTg0ZjAtNmZkYi00ZmNjLWE5OGYtODY3Yjc5OWE3ZWJh@thread.v2", "topic": "気ままに勉強会 #22", "createdDateTime": "2022-07-01T21:22:21.536Z", "lastUpdatedDateTime": "2022-09-25T21:13:18.474Z" } ], "@odata.count": 2, "@odata.context": "https://graph.microsoft.com/beta/$metadata#chats" } 出力 会話ID チャットの表示名 チャットの作成日時 様々な Teamsコネクタのアクション で利用する チャットの最終更新日時

Slide 72

Slide 72 text

72 チャットメンバーを 一覧表示する チャットの操作

Slide 73

Slide 73 text

チャットメンバーの一覧表示 73 ◼ チャットのメンバーリストを作成する ➢ グループチャットを選択 ➢ Group chat カスタム値でチャットIDを入力すれば、 1対1チャットのメンバーも取得できる(一応)

Slide 74

Slide 74 text

74 "body": { "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#chats('19%3A35784152e39848ed8f7e55077ee31b99%40thread.v2')/members", "@odata.count": 3, "value": [ { "@odata.type": "#microsoft.graph.aadUserConversationMember", "id": "MCMjMCMjNTUyNDQwZWUtODkxZC00ZjVhLWI3OGUtMTNkMGEzZmExZGQ0IyMxOTozNTc4NDE1MmUzOTg0OGVkOGY3ZTU1MDc3ZWUzMWI5OUB0aHJlYWQud", "roles": [ "owner" ], "displayName": "二宮 次郎", "visibleHistoryStartDateTime": "0001-01-01T00:00:00Z", "userId": "6480daab-d9b5-4285-a9da-e2905e6aa2fc", "email": "user02mail@20210401developer.onmicrosoft.com", "tenantId": "552440ee-891d-4f5a-b78e-13d0a3fa1dd4" }, { "@odata.type": "#microsoft.graph.aadUserConversationMember", "id":”GEzZmExZGQ0IyMxOTozNTc4NDE1MmUzOTg0OGVkOGY3ZTU1MDc3ZWUzMWI5OUB0aHJlYWQudjIjI2U4NjM1ZDhmLTVmNzAtNGQ1ZC1iOTBiLW==", "roles": [ "guest" ], "displayName": "user01", "visibleHistoryStartDateTime": "0001-01-01T00:00:00Z", "userId": "e8635d8f-5f70-4d5d-b90b-a9d85e11f183", "email": "user01@lioness365.onmicrosoft.com", "tenantId": "552440ee-891d-4f5a-b78e-13d0a3fa1dd4" } 出力 表示名 メールアドレス テナントID ロール 会話のメンバーとの会話履歴を、 過去のどの時点からメンバーと共 有するかを示すタイムスタンプ ユーザーID

Slide 75

Slide 75 text

タグを操作する

Slide 76

Slide 76 text

チームのタグについて 76 ◼ チーム内の一部属性ユーザーに対しメンションする際に利用する ◼ タグ付けの管理は ➢ Teams管理センター - Teamsの設定 ー タグ付け ✓ タグを管理できるユーザー:チームの所有者/チームの所有者とメンバー/タグ付けを無効 ✓ チームの所有者は、タグを管理できるユーザーを変更できます:ON/OFF ✓ 推奨タグ(候補として表示されるタグ) ✓ カスタム タグ:ON/OFF(推奨タグ以外を追加できるか) ✓ Shifts アプリでタグを適用できます:ON/OFF チームで最大200個 最大200人に割り当て可能 同一チームで一人に25個まで Microsoftの規定値??

Slide 77

Slide 77 text

Teams Shifts について 77 ◼ チームに所属しているメンバーを管理するスケジューラー(シフト管理) ✓ スケジュールはチーム管理者のみが管理可能 ✓ 任意のタイミングでシフトを公開可能 ✓ 出勤 と 休憩時間で合計勤務時間を表示 ✓ 空き時間(不足している時間)を設定し、メンバーからの出勤希望を受け付け可能 ✓ タイムカード機能あり、休暇申請、交代申請、シフト変更申請が可能 ✓ 出退勤レポートを出力可能 ✓ シフトのグループをチャットやチャネルでタグとして利用可能 Shifts for Microsoft Teamsコネクタもあります https://learn.microsoft.com/ja- jp/connectors/Shifts/#approve-a-time-off- request

Slide 78

Slide 78 text

78 タグを作成する タグの操作

Slide 79

Slide 79 text

チームのタグの作成 79 ◼ チームにタグを作成する ◼ ユーザーIDには、オブジェクトIDをセットする (UPNやメールアドレスはNG) ◼ チームのメンバーによるタグの作成可否は チームの設定に準ずる チームを管理 > 設定 > タグ

Slide 80

Slide 80 text

動的な値:ID メンバーの指定 80 ◼ ユーザーIDに指定するオブジェクトIDは、 「Office 365 Users」 コネクタで取得可能 「ユーザー プロフィールの取得」 や 「マイ プロフィールの取得」 複数指定する場合は";"(セミコロン)で区切る

Slide 81

Slide 81 text

81 タグを一覧表示する タグの操作

Slide 82

Slide 82 text

チームのタグを一覧表示 82 ◼ チームに設定されたタグをすべて表示する ◼ タグごとに取得できる項目は、タグID、チームID(M365グループID)、 表示名、メンバー数

Slide 83

Slide 83 text

83 "body": { "@odata.context": "https://graph.microsoft.com/beta/$metadata#teams('fc2ec21d-5c5e-4603-8acf-faace4d4dfbf')/tags", "@odata.count": 2, "value": [ { "id": "NTUyNDQwZWUtODkxZC00ZjVhLWI3OGUtMTNkMGEzZmExZGQ0IyNmYzJlYzIxZC01YzVlLTQ2MDMtOGFjZi1mYWFjZ", "teamId": "fc2ec21d-5c5e-4603-8acf-faace4d4dfbf", "displayName": "tag2", "memberCount": 1, "tagType": "standard" }, { "id": "NTUyNDQwZWUtODkxZC00ZjVhLWI3OGUtMTNkMGEzZmExZGQ0IyNmYzJlYzIxZC01YzVlLTQ2MDMtOGFjZi1mYWFjZT", "teamId": "fc2ec21d-5c5e-4603-8acf-faace4d4dfbf", "displayName": "tag3", "memberCount": 4, "tagType": "standard" } ] } 出力 タグID チームID 表示名 メンバー数 Standard :カスタムタグ Scheduled:シフトでのタグ

Slide 84

Slide 84 text

84 タグを削除する タグの操作

Slide 85

Slide 85 text

タグを削除する 85 ◼ タグを削除する ◼ タグを削除済み(復元できるゴミ箱)には入らず、ダイレクトに削除さ れる

Slide 86

Slide 86 text

86 タグにメンバーを 追加する タグの操作

Slide 87

Slide 87 text

タグにメンバーを追加する 87 ◼ タグにメンバーを追加する ◼ チームに所属しない所有者やメンバーは追加できない ◼ ゲストユーザーも追加可能 ◼ ユーザーIDには、オブジェクトIDをセットする(UPNやメールアドレスはNG)

Slide 88

Slide 88 text

88 タグのメンバーを 一覧表示する タグの操作

Slide 89

Slide 89 text

タグのメンバーを一覧表示 89 ◼ タグのメンバーを一覧表示する ◼ タグごとに取得できる項目は、タグメンバーID、テナントID、メンバー の表示名、ユーザーID

Slide 90

Slide 90 text

90 "body": { "@odata.context": "https://graph.microsoft.com/beta/$metadata#teams('fc2ec21d-5c5e-4603-8acf- faace4d4dfbf')/tags('NTUyNDQwZWUtODkxZC00ZjVhLWI3OGUtMTNkMGEzZmExZGQ0IyNmYzJlYzIxZC01YzVlLTQ2MDMtOGFjZi1mYWFjZTRkNG')/members", "@odata.count": 2, "value": [ { "id": "MCMjMSMjNTUyNDQwZWUtODkxZC00ZjVhLWI3OGUtMTNkMGEzZmExZGQ0IyNmYzJlYzIxZC01YzVlLTQ2MDMtOGFjZizYtNDYyZC1hOGQ4LTE1ZDUwNWQ3NTJhZA==", "displayName": "一ノ瀬 一夫", "tenantId": "552440ee-891d-4f5a-b78e-13d0a3fa1dd4", "userId": "bef8991a-5f76-462d-a8d8-15d505d752ad" }, { "id": "MCMjMSMjNTUyNDQwZWUtODkxZC00ZjVhLWI3OGUtMTNkMGEzZmExZGQ0IyNmYzJlYzIxZC01YzVlLTQ2MDMFiLWQ5YjUtNDI4NS1hOWRhLWUyOTA1ZTZhYTJmYw==", "displayName": "二宮 次郎", "tenantId": "552440ee-891d-4f5a-b78e-13d0a3fa1dd4", "userId": "6480daab-d9b5-4285-a9da-e2905e6aa2fc" } ] } 出力 タグ メンバーID テナントID ユーザーの表示名 ユーザーID

Slide 91

Slide 91 text

91 タグからメンバーを 削除する タグの操作

Slide 92

Slide 92 text

チームからメンバーを削除する 92 ◼ タグからメンバーを削除する ◼ タグメンバーIDは、「タグのメンバーを一覧表示する」アクションなど で取得する(ユーザーIDやUPNによる指定は不可)

Slide 93

Slide 93 text

メンションを 操作する

Slide 94

Slide 94 text

94 ユーザーのメンションを 取得する メンションの操作

Slide 95

Slide 95 text

ユーザーのメンションを取得 95 ◼ メッセージやアダプティブカードに挿入可能な、ユーザーの @mention トークンを取得する ◼ メンションは、UPN でも可能 (コードビュー、アダプティブカード)

Slide 96

Slide 96 text

@メンション する ◼ 方法1 ユーザーの @mention トーク ンを取得する ◼ 方法2 UPN 96

Slide 97

Slide 97 text

97 タグのメンションを 取得する メンションの操作

Slide 98

Slide 98 text

タグのメンションを取得 98 ◼ メッセージやアダプティブカードに挿入可能な、タグの @mention トー クンを取得する ◼ メッセージやアダプティブカードにトークンを使用する際、ユーザーに よる投稿であること ◼ トークンを取得したチームと異なるチームに、トークンを利用しメン ションすることは可能(エラーは発生しないがタグのメンバーは0)

Slide 99

Slide 99 text

Teams 会議を 操作する

Slide 100

Slide 100 text

Teams 会議について 100 ◼ 種類 ✓ Teams 会議 ✓ Teams ウェビナー (参加登録フォーム、招待通知、参加者のオーディオとビデオは規定でOFF など) ✓ Teams ライブイベント (開催者,プロデューサー,発表者のロール、Public/Privateイベント) ◼ 会議の制限 ➢ チャット、オーディオ、ビデオを使用して対話できる招待者数は ➢ Microsoft 365 Business Basic、Business Standard、Business Premium、A1 :300人 ➢ Microsoft 365 E3/E5、A3/A5:1,000人 ➢ 会議の容量に達した場合、表示のみの参加者となる(本年度末まで最大20,000人)

Slide 101

Slide 101 text

101 Teams 会議を作成する 会議の操作

Slide 102

Slide 102 text

Teams 会議の作成 102 ◼ Teams 会議を作成する ◼ Teams ウェビナーやTeams ライブイベントは作成できない ➢ Tokyo Standard Time など “ ; ”(セミコロン)で区切りではない

Slide 103

Slide 103 text

Teams 会議の作成 103 ➢ Tokyo Standard Time など ➢ 低 ➢ 中 ➢ 高 ➢ 第1 ➢ 第2 ➢ 第3 ➢ 第4 ➢ 最後 英語で指定する 例:Monday,Wednesday,Saturday ➢ free ➢ tentative ➢ busy ➢ oof ➢ workingElsewhere ➢ unknown

Slide 104

Slide 104 text

メッセージを 操作する

Slide 105

Slide 105 text

105 チャットまたはチャネルで メッセージを投稿する メッセージの操作

Slide 106

Slide 106 text

チャットまたはチャネルでメッ セージを投稿する 投稿者:ユーザー 投稿者:フローボット 投稿者:Power Virtual Agents

Slide 107

Slide 107 text

107 投稿者 投稿先 ユニークなパラメータ ユーザー user Channel Team ChannelSubject Hosted Contents(*1) Group chat Group chat Hosted Contents(*1) フローボット flow bot Channel Team Channel Chat with Flow bot Recipient Channel IsAlert Group chat Group chat Power Virtual Agents Chat with bot Bot Recipient Label as notification If chat is active IF bot not installed 投稿者と投稿先の組み合わせ 複数人指定不可

Slide 108

Slide 108 text

108 Hosted Contents について Hiroさん [Tips] Power Automate から Teams に投稿するメッセージに画像を埋め込む – Qiita Power Automate から投稿する Adaptive Card に画像を表示する方法 (2023年版) - MoreBeerMorePower (hatenablog.com) ◼ Hosted Contents を指定することで、メッセージに画像を挿入できる コードビューに変更する [ { "@microsoft.graph.temporaryId": "[temporaryId]", “contentBytes”: “/9j/4AAQSkZJRgABAQ....”“, "contentType": "image/jpg“ } ] 同一の値(数字)で設定する 一つのメッセージに複数のイメージを挿入する場合、 それぞれの[temporaryId]はユニークな値とする Base64化したイメージファイルの拡張子 (image/jpg,image/png ) Base64化した画像ファイル

Slide 109

Slide 109 text

109 Power Virtual Agents for Teams で プロアクティブなメッセージを受信 Power Virtual Agents for Teams でプロアクティブなメッセージを受信する – Qiita プロアクティブなメッセージで Teams のボットユーザーに通知する - Power Virtual Agents | Microsoft Learn ◼ プロアクティブなメッセージで質問し、入力された回答をトリガーフレーズとしてト ピックを実行するなど可能 チャットボットを選択 ボットとフローは同一チーム内かつ、 同じソリューションに配置 クラシックボットであること 受信者を指定 「経由の通知」の表示有無 複数人指定不可

Slide 110

Slide 110 text

110 メッセージを取得する メッセージの操作

Slide 111

Slide 111 text

111 メッセージを取得 ◼ 指定したチャネルの親メッセージを取得する ◼ 返信(ひとつのスレッドにおける2つ目以降のメッセージ)は取得されない ◼ 一度に取得できるのは、最大20件の模様 ◼ Teams チーム上のスレッドの表示順で出力される(上⇒下の順) 親メッセージ 返信 返信 取得するチームとチャネルを指定

Slide 112

Slide 112 text

112 "body": { "@odata.context": "https://graph.microsoft.com/beta/$metadata#teams('084ff44a-92db-4844-9063-8aeed0aec5d5')/channels('19%3AiEEyWC- gxk8GciL45EVkDE1K_WBaUf3XkjmqI4H9WVg1%40thread.tacv2')/messages", "@odata.count": 20, "@odata.nextLink": "https://japan-001.azure-apim.net/apim/teams/shared-teams-bc70055c-7080-4d37-88b1-00d483c6e8f3/beta/teams/084ff44a-92db-4844- 9063-8aeed0aec5d5/channels/19:iEEyWC- gxk8GciL45EVkDE1K_WBaUf3XkjmqI4H9WVg1@thread.tacv2/messages?$skiptoken=%5b%7B%22token%22%3a%22%2bRID%3a~vpsQAJ9uAC3m4i0AAOCTDA%3d%3d%23RT%3a1%23TRC%3a20%2 3RTD%3aAyAER1ygxSHVHGAn2S99BTI6O2pGRnpYRC5oeWw5SGRqTTU2RldsRUYyTGBYQ2JWZzRZbGtucko1STpYV2gyQXVpc2ZiZS91YmR3MzwyNzo2ODM2OTEyNzUzAA%3d%3d%23ISV%3a2%23IEO%3a 65551%23QCF%3a8%23FPC%3aAgjSAQAAmCsAALkAAIBPMgAA0gEAAJgrAAAEABq7EoB6AACATzIAAAYAYooWgBiAhQAAgE8yAAACAOShhgAAgE8yAAAIALKYMgsAYAMAtwAAgE8yAAAcAH2gKIB7gIaAFo EGgAHACCCDjjqBB4BNgIiAVYC5AACATzIAABYAo5nqh8CAAoABwAQgDIERAEAIEoBfgA%3d%3d%22%2c%22range%22%3a%7B%22min%22%3a%2205C1E577438128%22%2c%22max%22%3a%2205C1E57 94B15B6%22%7D%7D%5d", "value": [ { "id": "1695821263344", "etag": "1695821633441", "messageType": "message", "createdDateTime": "2023-09-27T13:27:43.344Z", "lastModifiedDateTime": "2023-09-27T13:33:53.441Z", "lastEditedDateTime": "2023-09-27T13:28:35.278Z", "subject": "親メッセージ", "importance": "high", "locale": "en-us", "webUrl": "https://teams.microsoft.com/l/message/19%3AiEEyWC- gxk8GciL45EVkDE1K_WBaUf3XkjmqI4H9WVg1%40thread.tacv2/1695821263344?groupId=084ff44a-92db-4844-9063-8aeed0aec5d5&tenantId=552440ee-891d-4f5a-b78e- 13d0a3fa1dd4&createdTime=1695821263344&parentMessageId=1695821263344", 出力メッセージ 親メッセージ の配列 取得件数(最大20) 親メッセージの詳細

Slide 113

Slide 113 text

113 { "id": "1695821263344", "etag": "1695821633441", "messageType": "message", "createdDateTime": "2023-09-27T13:27:43.344Z", "lastModifiedDateTime": "2023-09-27T13:33:53.441Z", "lastEditedDateTime": "2023-09-27T13:28:35.278Z", "subject": "親メッセージ", "importance": "high", "locale": "en-us", "webUrl": "https://teams.microsoft.com/l/message/19%3AiEEyWC- gxk8GciL45EVkDE1K_WBaUf3XkjmqI4H9WVg1%40thread.tacv2/1695821263344?groupId=084ff44a-92db-4844-9063-8aeed0aec5d5&tenantId=552440ee-891d-4f5a-b78e- 13d0a3fa1dd4&createdTime=1695821263344&parentMessageId=1695821263344", "from": { "user": { "@odata.type": "#microsoft.graph.teamworkUserIdentity", "id": "da46df74-8329-4857-9caf-b5f9bcb15f69", "displayName": "管理者 1", "userIdentityType": "aadUser", "tenantId": "552440ee-891d-4f5a-b78e-13d0a3fa1dd4" } }, 出力メッセージ つづき タイトル メッセージID 重要度 投稿者情報

Slide 114

Slide 114 text

114 "body": { "contentType": "html", "content": "

過去のガンダムLTのスライド

¥n

一ノ瀬 一夫 二宮  次郎

¥n

 

" }, "channelIdentity": { "teamId": "084ff44a-92db-4844-9063-8aeed0aec5d5", "channelId": "19:iEEyWC-gxk8GciL45EVkDE1K_WBaUf3XkjmqI4H9WVg1@thread.tacv2" }, "attachments": [ { "id": "bff73dda-3b28-41e1-aa1e-b9b33f29b600", "contentType": "reference", "contentUrl": "https://20210401developer.sharepoint.com/teams/FromPowerAutomate/Shared Documents/General/ガンダムBotを1分で作 る.pptx", "name": "ガンダムBotを1分で作る.pptx" }, { "id": "4072d7c8-3ac4-4daa-be50-0d8a0217b833", "contentType": "reference", "contentUrl": "https://20210401developer.sharepoint.com/teams/FromPowerAutomate/Shared Documents/General/セリフを感情分析.pptx", "name": "セリフを感情分析.pptx" } ], 出力メッセージ つづき チームとチャネルのID 本文 添付ファイル

Slide 115

Slide 115 text

115 "mentions": [ { "id": 0, "mentionText": "一ノ瀬", "mentioned": { "application": null, "device": null, "conversation": null, "tag": null, "user": { "@odata.type": "#microsoft.graph.teamworkUserIdentity", "id": "bef8991a-5f76-462d-a8d8-15d505d752ad", "displayName": "一ノ瀬", "userIdentityType": "aadUser" } } }, { "id": 1, "mentionText": "一夫", } ], 出力メッセージ つづき メンション情報 ユーザー名に空白があると、別の要素となる

Slide 116

Slide 116 text

116 "reactions": [ { "reactionType": "like", "createdDateTime": "2023-09-27T13:33:43.469Z", "user": { "application": null, "device": null, "user": { "@odata.type": "#microsoft.graph.teamworkUserIdentity", "id": "da46df74-8329-4857-9caf-b5f9bcb15f69", "displayName": null, "userIdentityType": "aadUser" } } }, { "reactionType": "heart", "createdDateTime": "2023-09-27T13:33:53.458Z", "user": { } } } ] } 出力メッセージ つづき リアクション情報

Slide 117

Slide 117 text

117 メッセージ詳細を取得する メッセージの操作

Slide 118

Slide 118 text

118 メッセージの詳細を取得 ◼ メッセージの詳細情報を取得 ◼ 取得するメッセージの種類(グループチャット/チャネル)でパラメータが変化 ◼ チャネルから取得できる項目は前項「メッセージを取得する」とほぼ同じ グループチャットの場合 チャネルの場合 取得対象が返信の場合、親メッセージIDを指定す る必要がある メッセージの存在するチャットと チャネルを指定 こちらでもチャネルのメッセージ詳細を取得可能 メッセージの種類:グループチャット Group chat:チャネルID を指定する

Slide 119

Slide 119 text

119 メッセージの詳細を取得 ◼ チャネルの返信を取得する方法 ➢ チャネルIDを指定する ➢ 親メッセージIDを指定する チャネルID 親メッセージID チーム チャネル こっちの方が取得できる項目が少し多いです ・teamID ・webUrl など

Slide 120

Slide 120 text

120 "body": { "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#chats('19%3Ab359d43fe2e949cfbe0fd654734b00aa%40thread.v2')/messages/$entity", "id": "1695725913004", "replyToId": "1695725913004", "etag": "1695725913004", "messageType": "message", "createdDateTime": "2023-09-26T10:58:33.004Z", "lastModifiedDateTime": "2023-09-26T10:58:33.004Z", "lastEditedDateTime": null, "deletedDateTime": null, "subject": null, "summary": null, "chatId": "19:b359d43fe2e949cfbe0fd654734b00aa@thread.v2", "importance": "normal", "locale": "en-us", "webUrl": null, "channelIdentity": null, "policyViolation": null, "eventDetail": null, 出力チャット 親メッセージID メッセージID チャットID

Slide 121

Slide 121 text

121 "from": { "device": null, "user": null, "application": { "@odata.type": "#microsoft.graph.teamworkApplicationIdentity", "id": "358f0194-6b0e-4dd3-af35-c24fe8a9ec87", "displayName": "Flow", "applicationIdentityType": "bot" } }, "body": { "contentType": "html", "content": "

今夜、行きましょう

", "plainTextContent": "今夜、行きましょう" }, "attachments": [], "mentions": [], "reactions": [], "messageLink": "https://teams.microsoft.com/l/message/19:b359d43fe2e949cfbe0fd654734b00aa@thread.v2/1695725913004?context=%7B%22contextType%22:%22chat%22%7D", "threadType": "chat", "conversationId": "19:b359d43fe2e949cfbe0fd654734b00aa@thread.v2" } 出力チャット つづき メッセージ本文

Slide 122

Slide 122 text

122 "body": { "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#teams('084ff44a-92db-4844-9063-8aeed0aec5d5')/channels('19%3AiEEyWC- gxk8GciL45EVkDE1K_WBaUf3XkjmqI4H9WVg1%40thread.tacv2')/messages/$entity", "id": "1695737588595", "replyToId": "1695737588595", "etag": "1695737588595", "messageType": "message", "createdDateTime": "2023-09-26T14:13:08.595Z", "lastModifiedDateTime": "2023-09-26T14:13:08.595Z", "lastEditedDateTime": null, "deletedDateTime": null, "subject": "", "summary": null, "chatId": null, "importance": "normal", "locale": "en-us", "webUrl": "https://teams.microsoft.com/l/message/19%3AiEEyWC- gxk8GciL45EVkDE1K_WBaUf3XkjmqI4H9WVg1%40thread.tacv2/1695737588595?groupId=084ff44a-92db-4844-9063-8aeed0aec5d5&tenantId=552440ee-891d-4f5a-b78e- 13d0a3fa1dd4&createdTime=1695737588595&parentMessageId=1695737588595", "policyViolation": null, "eventDetail": null, 出力チャネル 「メッセージを取得する」アクションとほぼ同じ項目

Slide 123

Slide 123 text

123 "from": { "application": null, "device": null, "user": { "@odata.type": "#microsoft.graph.teamworkUserIdentity", "id": "da46df74-8329-4857-9caf-b5f9bcb15f69", "displayName": "管理者 1", "userIdentityType": "aadUser", "tenantId": "552440ee-891d-4f5a-b78e-13d0a3fa1dd4" } }, "body": { "contentType": "html", "content": "", "plainTextContent": "" }, 出力チャネル つづき

Slide 124

Slide 124 text

124 "channelIdentity": { "teamId": "084ff44a-92db-4844-9063-8aeed0aec5d5", "channelId": "19:iEEyWC-gxk8GciL45EVkDE1K_WBaUf3XkjmqI4H9WVg1@thread.tacv2" }, "attachments": [], "mentions": [], "reactions": [], "messageLink": "https://teams.microsoft.com/l/message/19%3AiEEyWC-gxk8GciL45EVkDE1K_WBaUf3XkjmqI4H9WVg1%40thread.tacv2/1695737588595?groupId=084ff44a- 92db-4844-9063-8aeed0aec5d5&tenantId=552440ee-891d-4f5a-b78e-13d0a3fa1dd4&createdTime=1695737588595&parentMessageId=1695737588595", "threadType": "channel", "teamId": "084ff44a-92db-4844-9063-8aeed0aec5d5", "channelId": "19:iEEyWC-gxk8GciL45EVkDE1K_WBaUf3XkjmqI4H9WVg1@thread.tacv2" } 出力チャネル つづき

Slide 125

Slide 125 text

125 チャネル内のメッセージで 応答します メッセージの操作

Slide 126

Slide 126 text

126 メッセージに応答 ◼ 指定したチャネルのスレッドにメッセージを送信する機能 ◼ 応答できるのはチャネルのみ(チャットは不可) ◼ 「チャネルに新しいメッセージが追加されたとき」トリガー等と組み合わせるのが主な 利用方法 Flow bot または User Channel のみ チャネル内スレッドの 親メッセージ ID 応答するスレッドが存在する チームとチャネルを指定 スレッドの親メッセージのIDであること ルート メッセージにのみ、返信できます (スレッドの返信に返信は不可)

Slide 127

Slide 127 text

アダプティブカードを 操作する

Slide 128

Slide 128 text

Adaptive Cards の基本はこちら https://speakerdeck.com/miyakemito/power-automatedefalseadaptive-cards-ji-ben-bian 128 アダプティブカードの基本 Adaptive Cards について

Slide 129

Slide 129 text

129 Power Apps Cards を送信する アダプティブカードを操作する

Slide 130

Slide 130 text

Power Apps Cards の手順 ②カードを作成する 1. Power Apps ポータルでCardsを作成 ①カード 2. フローでCardsを送信 ③カードのインスタンス を作成する Power Apps(Preview) カードのインスタンスを作成する の Cards(動的なコンテンツ) https://learn.microsoft.com/ja-jp/power-apps/cards/send-a-card/send-card-with-flow 130

Slide 131

Slide 131 text

131 オプションの選択を フローボットとして ユーザーに投稿する メッセージの操作

Slide 132

Slide 132 text

132 オプションの選択をフローボットと してユーザーに投稿する ① ◼ 1対1チャットに選択肢を含むアダプティブカードを投稿し、待機する ◼ 応答までアクションは待ち受ける ヘッドライン 概要 メッセージ 受信者を複数設定するとエラー Workflowsからのメッセージとなるため、 送信者がわかりづらい

Slide 133

Slide 133 text

133 オプションの選択をフローボットと してユーザーに投稿する ② ◼ 返信時はコメントの入力が可能 "body": { "responseTime": "2023-09-29T12:32:25.7810368Z", "responder": { "tenantId": "552440ee-891d-4f5a-b78e-13d0a3fa1dd4", "objectId": "da46df74-8329-4857-9caf-b5f9bcb15f69", "userId": "da46df74-8329-4857-9caf-b5f9bcb15f69", "userType": "ActiveDirectory" }, "selectedOption": "いきます。", "comments": "おごりですね?!ゴチになります!" }

Slide 134

Slide 134 text

フィード通知を 操作する

Slide 135

Slide 135 text

135 フィード通知を投稿する フィード通知を操作する

Slide 136

Slide 136 text

通知テキスト Flow bot のみ Power Virtual Agentsはどこに? 136 フィード通知を投稿する ◼ 指定したユーザーに向けて、特定のチーム、チャネル、メッセージ、およびチャットに 対し通知を送る ◼ 既存のチーム、チャネル、メッセージ、チャットへ、通知による誘導が主な使い道 メッセージIDを指定する場合は、 そのメッセージが存在するチャネルや チャットを指定する 複数人への通知は不可能 通知の種類:チャット 通知の種類:チャネル

Slide 137

Slide 137 text

Teamsコネクタの Triggerたち

Slide 138

Slide 138 text

138 チャネル タイミング (recurrence) Input Output チャネルに新しいメッセージが追加されたとき ポーリング 1分ごと チーム、チャネル メッセージの詳細情報 チャットに新しいメッセージが追加されたとき Webhook なし 会話ID、メッセージIDのみ 作成ボックスから(V2) プッシュトリガー (ApiConnection) アダプティブカード (設定すれば) アダプティブカードに入力情報値(設定すれば) 会話ID 選択されたメッセージに対して(V2) プッシュトリガー (ApiConnection) アダプティブカード (設定すれば) アダプティブカードに入力情報値(設定すれば) チームID、会話ID、メッセージID キーワードが言及された場合 Webhook キーワード チャネル または チャット チームID、会話ID、メッセージID チャネルのメッセージで自分がメンションされてい るとき ポーリング 1分ごと チーム、チャネル メッセージの詳細情報 自分が@mentionedである場合 Webhook チャネル または チャット チームID、会話ID、メッセージID 新しいチーム メンバーが追加されたとき ポーリング 15分ごと チーム 追加されたユーザーのID 新しいチーム メンバーを削除したとき ポーリング 15分ごと チーム 削除されたユーザーのID 誰かがアダプティブカードに応答した場合 プッシュトリガー (ApiConnection) Adaprivecards カードの種類 ID アダプティブカードの入力情報値 応答者の情報、チームID、会話ID、メッセージID トリガーの比較 ポーリング間隔はライセンスにより変化します

Slide 139

Slide 139 text

139 チャネルに 新しいメッセージが 追加されたとき Teams トリガー

Slide 140

Slide 140 text

140 チャネルに新しいメッセージが追加 されたとき ◼ 新しいメッセージがチャネルに投稿されたときにトリガーする ◼ チャネルに追加されたルート メッセージに対してのみ発生(既存のチャネルメッセージ への返信では起動しない)

Slide 141

Slide 141 text

141 "body": { "@odata.type": "#microsoft.graph.chatMessage", "etag": "1697547461681", "messageType": "message", "createdDateTime": "2023-10-17T12:57:41.681Z", "lastModifiedDateTime": "2023-10-17T12:57:41.681Z", "subject": "タイトル", "importance": "normal", "locale": "en-us", "webUrl": "https://teams.microsoft.com/l/message/19%3AYnd2BOXO3BpzTWVhVCdq4iGsbDTrabhk0h9UJK9Do6g1%40thread.tacv2/1697547461681?groupId=70f14566-5085-4e97-abb5- 179ceeb94947&tenantId=552440ee-891d-4f5a-b78e-13d0a3fa1dd4&createdTime=1697547461681&parentMessageId=1697547461681", "id": "1697547461681", "from": { "user": { "@odata.type": "#microsoft.graph.teamworkUserIdentity", "id": "da46df74-8329-4857-9caf-b5f9bcb15f69", "displayName": "管理者 1", "userIdentityType": "aadUser", "tenantId": "552440ee-891d-4f5a-b78e-13d0a3fa1dd4" } }, "body": { "contentType": "html", "content": "

メッセージ

" }, "channelIdentity": { "teamId": "70f14566-5085-4e97-abb5-179ceeb94947", "channelId": "19:Ynd2BOXO3BpzTWVhVCdq4iGsbDTrabhk0h9UJK9Do6g1@thread.tacv2" }, "attachments": [], "mentions": [], "reactions": [] } 出力 タイトル 本文 投稿者情報 添付ファイル メンション情報 リアクション情報 チームとチャネルのID メッセージID 取得可能な項目は 「メッセージを取得します」や 「メッセージの詳細を取得します」と同等

Slide 142

Slide 142 text

142 チャットに 新しいメッセージが 追加されたとき Teams トリガー

Slide 143

Slide 143 text

143 チャットに新しいメッセージが追加 されたとき ◼ フロー所有者が参加する1対1チャットやグループチャットで、メッセージを追加され たときにトリガーする ◼ 出力項目は少ない

Slide 144

Slide 144 text

144 "body": { "value": [ { "subscriptionId": "357bc305-6e3e-4b2c-8327-3dcbdd899ad3", "changeType": "created", "clientState": "secretClientValue", "subscriptionExpirationDateTime": "2023-10-19T13:59:24.955246+00:00", "resource": "chats('19:2eadbdc2769e43ada3722ee5a039f8c5@thread.v2')/messages('1697720390327')", "resourceData": { "id": "1697720390327", "@odata.type": "#Microsoft.Graph.chatMessage", "@odata.id": "chats('19:2eadbdc2769e43ada3722ee5a039f8c5@thread.v2')/messages('1697720390327')" }, "tenantId": "552440ee-891d-4f5a-b78e-13d0a3fa1dd4", "conversationId": "19:2eadbdc2769e43ada3722ee5a039f8c5@thread.v2", "messageId": "1697720390327", "linkToMessage": "https://teams.microsoft.com/l/message/19:2eadbdc2769e43ada3722ee5a039f8c5@thread.v2/1697720390327?tenantId=552440ee- 891d-4f5a-b78e-13d0a3fa1dd4&context=%7B%22contextType%22:%22chat%22%7D" } ] } 出力

Slide 145

Slide 145 text

145 追加されたメッセージの詳細を取得 ◼ 「メッセージの詳細を取得する」アクションでメッセージの詳細情報を取得可能 triggerBody()?['value']?[0]?['messageId'] グループチャット triggerBody()?['value']?[0]?['conversationId']

Slide 146

Slide 146 text

146 作成ボックスから Teams トリガー

Slide 147

Slide 147 text

アダプティブカード編集画面が開くが、 Adaptive Cards Designer と比べ使いにくい ※Target versionは 1.3 147 作成ボックスから(V2) ◼ Teams の作成メッセージ ボックスからフローを開始できる ◼ アダプティブカードを設定することで、実行ユーザーからの入力を受け付け可能 ◼ Default 環境でのみ機能する(ソリューション内外は影響しない) ◼ 作成したフローは他のメンバーからも実行可能だが、権限については注意 Action.Submit パーツを配置しなくても、 実行時に自動的に配置される

Slide 148

Slide 148 text

Workflows は アプリから 追加します 148 実行方法 ◼ メッセージ入力ボックスの「+」や「…」から Workflows を選択し、 実行するフローを選択する。

Slide 149

Slide 149 text

応答処理を追加する ■ 「Teams のタスクモジュールで応答」ア クションを後続につなげ、Adaptive Cards による応答も可能 ■ 後述の「選択したメッセージに 対して」トリガーでも利用可能 ■ Submitから10秒程度以内に応答しないと、 タイムアウトエラーとなる 149

Slide 150

Slide 150 text

150 "body": { "teamsFlowRunContext": { "Id": "f:f88fe935-1cf8-a347-fa51-80331b2fd722", "ChannelData": { "EventType": null, "InvalidateInvokeCache": null, "Team": null, "Tenant": { "Id": "552440ee-891d-4f5a-b78e-13d0a3fa1dd4" }, "Channel": null, "Notification": null, "OnBehalfOf": null }, "From": { "Id": "8:orgid:da46df74-8329-4857-9caf-b5f9bcb15f69", "Name": "管理者 1", "Role": null, "AadObjectId": "da46df74-8329-4857-9caf-b5f9bcb15f69", "Properties": null }, "Conversation": { "Id": "19:da46df74-8329-4857-9caf-b5f9bcb15f69_358f0194-6b0e-4dd3-af35-c24fe8a9ec87@unq.gbl.spaces", "Name": null, "IsGroup": null }, "Locale": "ja-JP", "CommandContext": "compose", "LocalTimezone": "Tokyo Standard Time" }, "cardOutputs": { "UserVal": “input1”, “PassVal”: “input2" } 出力 Adaprive Cards で入力された値 チャネル/チャットID

Slide 151

Slide 151 text

151 選択したメッセージに 対して Teams トリガー

Slide 152

Slide 152 text

152 選択したメッセージに対して アダプティブカード編集画面が開くが、 Adaptive Cards Designer と比べ使いにくい ※Target versionは 1.3 Action.Submit パーツを配置しなく ても、実行時に自動的に配置される ◼ Teams の投稿済みメッセージからフローを開始できる ◼ アダプティブカードを設定することで、実行ユーザーからの入力を受け付け可能 ◼ Default 環境でのみ機能する(ソリューション内外は影響しない) ◼ 作成したフローは他のメンバーからも実行可能だが、権限については注意

Slide 153

Slide 153 text

作成したフローが、いつまでたっても表示されない場合は、 ① 該当フローを「名前を付けて保存」 ②(コピーしたフローを)「削除」 でTeamsに表示されます 【TIPS】「選択したメッセージの場合」トリガーのフローをイン ポートしたときに「その他の操作」メニューに即時反映する - ルド ルフもわたるふもいろいろあってな (hatenablog.com) 153 実行方法 ◼ 投稿済みメッセージの「…」(その他の操作)から実行するフローを選択する。

Slide 154

Slide 154 text

“ "ChannelData": { "EventType": null, "InvalidateInvokeCache": null, "Team": null, "Tenant": { "Id": "552440ee-891d-4f5a-b78e-13d0a3fa1dd4" }, "Channel": null, "Notification": null, "OnBehalfOf": null }, "From": { "Id": "8:orgid:da46df74-8329-4857-9caf-b5f9bcb15f69", "Name": "管理者 1", "Role": null, "AadObjectId": "da46df74-8329-4857-9caf-b5f9bcb15f69", "Properties": null }, "Conversation": { "Id": "19:da46df74-8af35-c24fe8a9ec87@unq.gbl.spaces", "Name": null, "IsGroup": null }, "Locale": "ja-JP", "CommandContext": "message", "LocalTimezone": "Tokyo Standard Time" }, "cardOutputs": { "UserVal": "ああ", "PassVal": "bbb" } } 154 "body": { "teamsFlowRunContext": { "MessagePayload": { "Id": "1697902720639", "From": { "Application": { "DisplayName": "Workflows", "Id": "358f0194-6b0e-4dd3-af35-c24fe8a9ec87" }, "Conversation": null, "Device": null, "User": null }, "Body": { "ContentType": "html", "Content": "", "PlainText": null }, "Subject": null, "LinkToMessage": "https://teams.microsoft.com/l/message/19:da46df74- 8329-4857-9caf-b5f9bcb15f69_358f0194-6b0e-4dd3-af35- c24fe8a9ec87@unq.gbl.spaces/1697902720639?context=%7B%22contextType%22:%22chat%22% 7D", "ReplyToId": null }, "Id": "f:abf8bbcc-fe12-50b0-4283-f55a6422a5e7", 出力 Adaprive Cards で入力された値 会話ID メッセージID テナントID

Slide 155

Slide 155 text

取得情報など 155 ■ チームID ■ チャネルID(チャットID) ■ メッセージID ■ アダプティブカードの応答 triggerBody()?['teamsFlowRunContext']?['messagePayload']?['id'] triggerBody()?['teamsFlowRunContext']?['Conversation']?['id'] triggerBody()?['teamsFlowRunContext']?['ChannelData']?['Team']?['AadGroupId'] triggerBody()?[‘cardOutputs’]?[<アダプティブカードのinputsのId>']

Slide 156

Slide 156 text

156 キーワードが言及された 場合 Teams トリガー

Slide 157

Slide 157 text

157 キーワードが言及された場合 ◼ キーワードを含むメッセージがチャネルやチャットに投稿されるとトリガーする ◼ 親メッセージに対する返信でも動作する ◼ 日本語のキーワードにも動作し、複数のキーワードを指定可能 チャットを指定しないと トリガーされない チャネルの指定は必須 メッセージの種類:チャット メッセージの種類:チャネル 1対1チャットを指定する場合は、 カスタム値でチャットIDを入力する

Slide 158

Slide 158 text

"body": { "value": [ { "subscriptionId": "d4294436-5669-4ae6-9638-9bc86aa1b05c", "changeType": "created", "clientState": "secretClientValue", "subscriptionExpirationDateTime": "2023-10-22T14:56:05.8142596+00:00", "resource": "chats('19:b359d43fe2e949cfbe0fd654734b00aa@thread.v2')/messages('1697983012950')", "resourceData": { "id": "1697983012950", "@odata.type": "#Microsoft.Graph.chatMessage", "@odata.id": "chats('19:b359d43fe2e949cfbe0fd654734b00aa@thread.v2')/messages('1697983012950')" }, "encryptedContent": null, "tenantId": "552440ee-891d-4f5a-b78e-13d0a3fa1dd4", "conversationId": "19:b359d43fe2e949cfbe0fd654734b00aa@thread.v2", "messageId": "1697983012950", "linkToMessage": "https://teams.microsoft.com/l/message/19:b359d43fe2e949cfbe0fd654734b00aa@thread.v2/169798301 2950?tenantId=552440ee-891d-4f5a-b78e-13d0a3fa1dd4&context=%7B%22contextType%22:%22chat%22%7D" } ] } 158 "body": { "value": [ { "subscriptionId": "15181e6c-fb77-4002-9152-9e0ca226f6c1", "changeType": "created", "clientState": "secretClientValue", "subscriptionExpirationDateTime": "2023-10-22T14:20:07.0789412+00:00", "resource": "teams('b3c351fc-52b9-44e2-b555- 24e1d15949d0')/channels('19:5DVQkR1txbtUWemEPXQWysYWxPAKZYOG1ydkFkdC3Lk1@thread.tacv2')/messag es('1696067592735')/replies('1697981145340')", "resourceData": { "id": "1697981145340", "@odata.type": "#Microsoft.Graph.chatMessage", "@odata.id": "teams('b3c351fc-52b9-44e2-b555- 24e1d15949d0')/channels('19:5DVQkR1txbtUWemEPXQWysYWxPAKZYOG1ydkFkdC3Lk1@thread.tacv2')/messag es('1696067592735')/replies('1697981145340')" }, "tenantId": "552440ee-891d-4f5a-b78e-13d0a3fa1dd4", "teamId": "b3c351fc-52b9-44e2-b555-24e1d15949d0", "channelId": "19:5DVQkR1txbtUWemEPXQWysYWxPAKZYOG1ydkFkdC3Lk1@thread.tacv2", "messageId": "1697981145340", "replyToMessageId": "1696067592735", "linkToMessage": "https://teams.microsoft.com/l/message/19:5DVQkR1txbtUWemEPXQWysYWxPAKZYOG1ydkFkdC3Lk1@thread. tacv2/1697981145340?tenantId=552440ee-891d-4f5a-b78e-13d0a3fa1dd4&groupId=b3c351fc-52b9-44e2- b555-24e1d15949d0&parentMessageId=1696067592735" } ] } 出力 メッセージID 親メッセージID メッセージの種類:チャット メッセージの種類:チャネル メッセージID チャットID チームID チャネルID メッセージID

Slide 159

Slide 159 text

159 チャネルのメッセージで 自分がメンション されているとき Teams トリガー

Slide 160

Slide 160 text

160 チャネルのメッセージで自分がメン ションされているとき ◼ チャネルに、自分へのメンションを含む新しいスレッドが投稿されるとトリガーする ◼ 親メッセージにしてのみ動作する

Slide 161

Slide 161 text

"channelIdentity": { "teamId": "fc2ec21d-5c5e-4603-8acf-faace4d4dfbf", "channelId": "19:c51e6cee3c9e4f8193fd00fe1d9409ba@thread.tacv2" }, "attachments": [], "mentions": [ { "id": 0, "mentionText": "管理者 1", "mentioned": { "application": null, "device": null, "conversation": null, "tag": null, "user": { "@odata.type": "#microsoft.graph.teamworkUserIdentity", "id": "da46df74-8329-4857-9caf-b5f9bcb15f69", "displayName": "管理者 1", "userIdentityType": "aadUser" } } } ], "reactions": [] } 161 "body": { "@odata.type": "#microsoft.graph.chatMessage", "etag": "1698066929117", "messageType": "message", "createdDateTime": "2023-10-23T13:15:29.117Z", "lastModifiedDateTime": "2023-10-23T13:15:29.117Z", "subject": "タイトル", "importance": "normal", "locale": "en-us", "webUrl": "https://teams.microsoft.com/l/message/19%3Ac51e6cee3c9e4f8193fd00fe1d9409ba%40thread.tacv2/16 98066929117?groupId=fc2ec21d-5c5e-4603-8acf-faace4d4dfbf&tenantId=552440ee-891d-4f5a-b78e- 13d0a3fa1dd4&createdTime=1698066929117&parentMessageId=1698066929117", "id": "1698066929117", "from": { "user": { "@odata.type": "#microsoft.graph.teamworkUserIdentity", "id": "bef8991a-5f76-462d-a8d8-15d505d752ad", "displayName": "一ノ瀬 一夫", "userIdentityType": "aadUser", "tenantId": "552440ee-891d-4f5a-b78e-13d0a3fa1dd4" } }, "body": { "contentType": "html", "content": "
メッセージ本文
¥n¥n
管理者 1
¥n
" }, 出力 取得可能な項目は 「メッセージを取得します」や 「メッセージの詳細を取得します」と同等

Slide 162

Slide 162 text

162 自分が @mentioned である場合 Teams トリガー

Slide 163

Slide 163 text

163 自分が @mentioned である場合 ◼ チャットやチャネルで @mentions に対して Webhook を作成する ◼ 親メッセージに対する返信でも動作する チャットを指定しないと トリガーされない チャネルの指定は必須 メッセージの種類:チャット メッセージの種類:チャネル 1対1チャットを指定する場合は、 カスタム値でチャットIDを入力する

Slide 164

Slide 164 text

"body": { "value": [ { "subscriptionId": "61aec79e-4f59-4eee-b2cd-9c07bc6638f4", "changeType": "created", "clientState": "secretClientValue", "subscriptionExpirationDateTime": "2023-10-23T14:33:43.5559081+00:00", "resource": "chats('19:bef8991a-5f76-462d-a8d8-15d505d752ad_da46df74-8329-4857- 9caf-b5f9bcb15f69@unq.gbl.spaces')/messages('1698068032719')", "resourceData": { "id": "1698068032719", "@odata.type": "#Microsoft.Graph.chatMessage", "@odata.id": "chats('19:bef8991a-5f76-462d-a8d8-15d505d752ad_da46df74-8329- 4857-9caf-b5f9bcb15f69@unq.gbl.spaces')/messages('1698068032719')" }, "encryptedContent": null, "tenantId": "552440ee-891d-4f5a-b78e-13d0a3fa1dd4", "conversationId": "19:bef8991a-5f76-462d-a8d8-15d505d752ad_da46df74-8329-4857- 9caf-b5f9bcb15f69@unq.gbl.spaces", "messageId": "1698068032719", "linkToMessage": "https://teams.microsoft.com/l/message/19:bef8991a-5f76-462d- a8d8-15d505d752ad_da46df74-8329-4857-9caf- b5f9bcb15f69@unq.gbl.spaces/1698068032719?tenantId=552440ee-891d-4f5a-b78e- 13d0a3fa1dd4&context=%7B%22contextType%22:%22chat%22%7D" } ] } 164 "body": { "value": [ { "subscriptionId": "bc937355-e4ce-4804-ba17-bc1ec3067b98", "changeType": "created", "clientState": "secretClientValue", "subscriptionExpirationDateTime": "2023-10-23T14:23:45.2856687+00:00", "resource": "teams('fc2ec21d-5c5e-4603-8acf- faace4d4dfbf')/channels('19:c78d8a810e2944e7b125dfbd10a8f028@thread.tacv2')/messages('16980674 59210')/replies('1698067628392')", "resourceData": { "id": "1698067628392", "@odata.type": "#Microsoft.Graph.chatMessage", "@odata.id": "teams('fc2ec21d-5c5e-4603-8acf- faace4d4dfbf')/channels('19:c78d8a810e2944e7b125dfbd10a8f028@thread.tacv2')/messages('16980674 59210')/replies('1698067628392')" }, "encryptedContent": null, "tenantId": "552440ee-891d-4f5a-b78e-13d0a3fa1dd4", "teamId": "fc2ec21d-5c5e-4603-8acf-faace4d4dfbf", "channelId": "19:c78d8a810e2944e7b125dfbd10a8f028@thread.tacv2", "messageId": "1698067628392", "replyToMessageId": "1698067459210", "linkToMessage": "https://teams.microsoft.com/l/message/19:c78d8a810e2944e7b125dfbd10a8f028@thread.tacv2/169806 7628392?tenantId=552440ee-891d-4f5a-b78e-13d0a3fa1dd4&groupId=fc2ec21d-5c5e-4603-8acf- faace4d4dfbf&parentMessageId=1698067459210" } ] } 出力 メッセージID 親メッセージID メッセージの種類:チャット メッセージの種類:チャネル メッセージID チャットID チームID チャネルID

Slide 165

Slide 165 text

165 新しいチーム メンバーが 追加されたとき Teams トリガー

Slide 166

Slide 166 text

166 新しいチーム メンバーが追加された とき ◼ 指定したチームにメンバーが追加されたときにトリガーする ◼ プライベートチャネル、および共有チャネルへのメンバー追加には反応しない ◼ プライベートチャネル、および共有チャネルを含むチームのメンバー追加には反応する ◼ プライベートチームには反応する 1分のポーリング間隔とあるが、 実際は15分のポーリングで動作する

Slide 167

Slide 167 text

167 "body": { "@odata.type": "#microsoft.graph.user", "id": "4ec35946-fcca-4d51-a65a-653ebe7598c0" } 出力 ユーザーID

Slide 168

Slide 168 text

168 新しいチーム メンバーを 削除したとき Teams トリガー

Slide 169

Slide 169 text

169 新しいチーム メンバーを削除したとき ◼ 指定したチームからメンバーが削除されたときにトリガーする ◼ プライベートチャネル、および共有チャネルからのメンバー削除には反応しない ◼ プライベートチャネル、および共有チャネルを含むチームのメンバー削除には反応する ◼ プライベートチームには反応する 1分のポーリング間隔とあるが、 実際は15分のポーリングで動作する

Slide 170

Slide 170 text

170 "body": { "@odata.type": "#microsoft.graph.user", "id": "6480daab-d9b5-4285-a9da-e2905e6aa2fc", "@removed": { "reason": "deleted" } } 出力 ユーザーID

Slide 171

Slide 171 text

171 誰かがアダプティブカード に応答した場合 Teams トリガー

Slide 172

Slide 172 text

Adaptive Cards の基本はこちら https://speakerdeck.com/miyakemito/power-automatedefalseadaptive-cards-ji-ben-bian 172 アダプティブカードの基本 Adaptive Cards について

Slide 173

Slide 173 text

まとめ

Slide 174

Slide 174 text

まとめ Teams コネクタ の利便性が少しでも 伝わりましたか? 是非、業務や遊びでご活用ください 174

Slide 175

Slide 175 text

ありがとうございました 175