Microsoft Graph API を使用して Microsoft Teams で作業する

重要

Microsoft Graph の /beta バージョンの API は変更される可能性があります。 実稼働アプリケーションでこれらの API を使用することは、サポートされていません。 v1.0 で API を使用できるかどうかを確認するには、Version セレクターを使用します。

Microsoft Teams は、Microsoft 365 のチャットベースのワークスペースであり、チーム固有の予定表、ファイル、OneNote のノート、Planner のプラン、シフトのスケジュールなどへの組み込みのアクセスを提供します。 Microsoft Graph API を使用して、Microsoft Teams 機能と統合できます。

一般的なユース ケース

次の表に、Microsoft Graph での Microsoft Teams API の一般的なユースケースを示します。

ユース ケース REST リソース 関連項目
チーム、グループ、チャネルを作成して管理する チームチャネルグループ チームの作成チームの一覧表示、 チャネルの作成
タブを追加したり、Microsoft Teams アプリ カタログでアプリを管理またはインストールしたりする teamsTabteamsAppInstallation create teamsTablist teamsTablist installedApps
チャネルとチャットを作成してチャット メッセージを送受信する チャンネル, チャット, chatMessage チャネルの作成チャネルの一覧表示チャネルでの chatMessage の送信
タグを使用して、チーム内の共通の属性に基づいてユーザーまたはグループを分類する teamworkTagteamworkTagMember list teamworkTag, create teamworkTag
通話、通話記録の作成と受信、または会議調整の取得 call, callRecords 回答して参加者を招待する
ボットを通話に接続し、対話型音声応答 (IVR) を実装する 通話 IVR のシナリオ
オンライン会議を作成および取得したり、ユーザーのプレゼンスとアクティビティをチェックしたりする onlineMeeting, プレゼンス 作成 onlineMeeting, meetingAttendanceReport
シフト、スケジュール、タイム カード、または休暇との従業員の統合を作成および管理する organization workforceIntegration, schedule, shift, timeOff, timeOffReason create workforceIntegration, create schedule, create shift, create timeOff
従業員学習 API を使用して Viva Learning と統合する employee learning, learningProvider, learningContent list learningProviders, list learningContents
チャット、チャネル、会議をユーザーのチャット リストのカスタム セクションまたはシステム定義セクションに整理する teamworkSectionteamworkSectionItem セクションのリストセクションの作成セクションの並べ替えアイテムの追加アイテムの移動アイテムの並べ替え

IVR のシナリオ

Microsoft Graph の呼び出し元 API がサポートする対話型音声応答 (IVR) のシナリオを次に示します。

  • 音声プロンプトを再生する - たとえば、通話がカスタマー サービス エージェントのキューに入れられた場合などです。
  • 応答を録音する - たとえば、発信者の音声を録音する場合。通常は、オプションを含むプロンプトを聞いた後に録音します。
  • トーンのサブスクライブ - たとえば、発信者が選択した DTMF トーンの内容を知りたい場合 (通常はオーディオ プロンプトを聞いた後)。
  • メディア処理のキャンセル - たとえば、進行中の playPrompt または recordResponse 操作を取り消す場合などです。

Microsoft Teams の制限

テスト済みの Microsoft Teams のパフォーマンスと容量の制限は、「Microsoft Teams の制限事項と仕様」に記載されています。 これらの制限は、Microsoft Teams を直接使用している場合でも、Microsoft Graph API を使用している場合でも適用されます。 すべてのチームには対応するグループがあり、すべてのグループはディレクトリ オブジェクトであるため、グループの数ディレクトリ オブジェクトの数 ("リソース") に制限が発生する可能性もあります。

チャネル内のファイルは SharePoint に保存され、SharePoint Online の制限が適用されます。

詳細については、「throttling limits for Microsoft Teams services (Microsoft Teams サービスの制限の調整)」を参照してください。

チームとグループ

Microsoft Graph では、Microsoft Teams は group リソースとして表されます。 Microsoft Teams と Microsoft 365 の両方のグループは、グループの共同作業のためのさまざまなニーズに対応します。 ほとんどのグループベースの機能 (グループの予定表、ファイル、ノート、写真、プランなど) は Microsoft Teams グループと Microsoft 365 グループに適用されます。 チーム と Microsoft 365 のグループの主な違いは、メンバー間のコミュニケション モードです。 チーム メンバーのコミュニケーションには、特定のチームのコンテキストで常設チャットが使用されます。 Microsoft 365 グループ メンバーのコミュニケーションには、グループ会話 (Outlook のグループのコンテキストで行われるメールによる会話) が使用されます。

チームを持つすべてのグループでは resourceProvisioningOptions プロパティが "Team" に設定されています。

注:Group.resourceProvisioningOptions プロパティは変更可能です。 このコレクションで "Team" を追加または削除しないでください。このようにすると、すべてのチームを一覧表示するときに誤った結果が表示されます。

チームとグループの API レベルでの違いを以下に示します。

  • 常設チャットは、Microsoft Teams でのみ使用できます。 この機能は、channel および chatMessage リソースにより階層的に表されます。
  • グループ会話は、Microsoft 365 グループでのみ使用できます。 この機能は、channelconversationThread、および post リソースにより階層的に表されます。
  • 参加チームの一覧表示」メソッドは Microsoft Teams のみに適用されます。
  • 通話 および オンライン会議 の API は、Microsoft Teams にのみ適用されます。
  • これらの API に関する既知の問題も参照してください。

Microsoft Teams のメンバーシップの変更

ユース ケース 動詞 URL
メンバーを追加する POST /teams/{team-id}/members
メンバーを削除する DELETE /teams/{team-id}/members/{membership-id}
メンバーの役割を更新する PATCH /teams/{team-id}/members/{membership-id}
チームを更新する PATCH /teams/{team-id}

ポーリングの要件

リソースが変更されたかどうかを確認するためにアプリがポーリングを行う場合、実行できるのは 1 日に 1 回だけです。 (teamsAsyncOperation は、頻繁にポーリングされることを意図しているという点で例外です。) それよりも頻繁に変更について知る必要がある場合は、そのリソースのサブスクリプションを作成し、変更通知 (Webhooks) を受け取る必要があります。 必要なサブスクリプションの種類に対するサポートが見つからない場合は、Microsoft 365 開発者プラットフォーム アイデア フォーラム を通じてフィードバックを提供してください。

新しいメッセージをポーリングする場合、サポートされている場合は日付の範囲を指定する必要があります。 詳細については、「 ユーザーの差分チャット メッセージを取得する」を参照してください。

ポーリングとは、リソースが変更されたかどうかを確認するために、リソースに対して何度も GET 操作を行うことをさします。 それがポーリングではない限り、同じリソースに対して 1 日に複数回 GET 操作を行うことができます。 たとえば、ユーザーが Web ページを訪問/更新するたびに GET /me/joinedTeams はかまいませんが、ループ内で 30 秒ごとに GET /me/joinedTeams を GET して Web ページを更新するのは問題ありません。

これらのポーリング要件に従わないアプリは、Microsoft API の使用条件に違反していると見なされます。 これにより、追加の調整が発生したり、Microsoft API の使用が停止または終了したりする可能性があります。