Microsoft Graph API を使用して変更通知を取得する

名前空間: microsoft.graph

重要

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

注意

baseTask または baseTaskList でこの機能を使用する既存のアプリは、これらのリソース上に構築された To Do API セットは 2022 年 5 月 31 日時点で非推奨になっているため、更新する必要があります。 その API セットは、2022 年 8 月 31 日にデータを戻すことを停止します。 todoTask上に構築されたAPIセットを使用してください。

Microsoft Graph REST API では、Webhook、Event Hubs、Event Grid など、さまざまなエンドポイントを介してクライアントに変更通知を配信できます。 アプリケーションの通知をサブスクライブして受信する方法については、「 ユーザー・データの変更に関する通知の設定」を参照してください。

アプリは、表に一覧表示されている Microsoft Graph リソースの変更をサブスクライブできます。 アスタリスク (*) が付いたリソースへのサブスクリプションは、 /beta エンドポイントでのみ使用できます。

注:

Microsoft Teamsリソースの場合、organizationあたりの合計 10,000 サブスクリプションの制限は、テナント内のすべての Teams 変更通知サブスクリプション間で累積的に共有されます。 これには、チャット、チャット メッセージ、通話記録、通話録音、チャネル、チーム、会話メンバーなど、さまざまな Teams リソース用に作成されたサブスクリプションが含まれます。これらは すべて同じ組織のクォータにカウントされます。 アクティブな Teams サブスクリプションの合計数がこの制限に達すると、Teams リソースの追加サブスクリプション作成要求は403 Forbiddenエラーで失敗します。

リソース サポートされるリソース パス 制限事項
クラウド印刷の printer 印刷ジョブをダウンロードする準備ができたときの変更 (jobFetchable イベント): /print/printers/{id}/jobs -
クラウド印刷の printTaskDefinition キューに有効なジョブがある場合の変更 (jobStarted イベント): /print/printtaskdefinition/{id}/tasks -
Copilot aiInsights 特定のユーザーが参加している会議からの Copilot AI 分析情報: /copilot/users/{userId}/onlineMeetings/getAllAiInsights

特定の会議に関する Copilot AI 分析情報: /copilot/users/{userId}/onlineMeetings/{onlineMeetingId}/aiInsights
ユーザーのすべての会議にわたる AI 分析情報の最大サブスクリプション クォータ:
  • アプリとユーザーの組み合わせごと: 1
  • ユーザーあたり (委任): 10
  • organization あたり: 合計 10,000 サブスクリプション。


特定の会議の AI 分析情報の最大サブスクリプション クォータ:
  • アプリごと、ユーザーごと + 会議の組み合わせ: 1
  • ユーザーおよび会議の組み合わせごと (委任): 1
  • Per organization: 10,000 total subscriptions (shared)
Copilot aiInteraction 特定のユーザーが参加している Copilot AI 対話: copilot/users/{userId}/interactionHistory/getAllEnterpriseInteractions

organization における Copilot AI の相互作用:copilot/interactionHistory/getAllEnterpriseInteractions
最大サブスクリプションのクォータ:
  • アプリとテナントの組み合わせごと (テナント全体の AI の対話を追跡するサブスクリプションの場合): 1
  • アプリおよびユーザーの組み合わせごと (特定のユーザーが参加している AI インタラクションを追跡するサブスクリプションの場合): 1
  • ユーザーあたり (特定のユーザーが参加している AI インタラクションを追跡するサブスクリプションの場合): 10 サブスクリプション。
  • organization あたり: 合計 10,000 サブスクリプション。
OneDrive (個人用) の driveItem 任意のフォルダーの階層内のコンテンツに対する変更:/users/{id}/drive/root -
職場または学校用 OneDrive の driveItem ルート フォルダーの階層内のコンテンツに対する変更: /drives/{id}/root ,/users/{id}/drive/root -
group すべてのグループへの変更: /groups

特定のグループへの変更: /groups/{id}

特定のグループの所有者に対する変更: /groups/{id}/owners

特定のグループのメンバーに対する変更: /groups/{id}/members
最大サブスクリプションのクォータ:
  • アプリあたり (すべてのテナントを合わせた場合): 合計 50,000 サブスクリプション。
  • テナントあたり (すべてのアプリケーションを組み合わせた場合): すべてのアプリで合計 1,000 のサブスクリプション。
  • アプリとテナントの組み合わせごと: 合計 100 サブスクリプション。


Azure AD B2C テナントではサポートされていません。

注: グループの作成と論理的な削除も updatedchangeType をトリガーします。
Microsoft Entra Health Monitoring アラート すべての正常性監視アラートに対する変更: /reports/healthmonitoring/alerts

特定の種類のアラートへの変更: 要求ペイロードの notificationQueryOptions プロパティが次に設定された/reports/healthmonitoring/alert$filter=alertType eq '{alertType}'
-
SharePoint サイトのリスト リスト内のコンテンツに対する変更:/sites/{site-id}/lists/{list-id} -
Microsoft 365 グループ会話 グループの会話に対する変更: groups/{id}/conversations -
Outlook メッセージ ユーザーのメールボックス内のすべてのメッセージに対する変更: /users/{id}/messages , /me/messages

ユーザーの受信トレイ内のメッセージに対する変更: /users/{id}/mailFolders('inbox')/messages , /me/mailFolders('inbox')/messages
すべてのアプリケーションに対して、メールボックスあたり最大 1,000 のアクティブなサブスクリプションが許可されます。
Outlook イベント ユーザーのメールボックス内のすべてのイベントに対する変更: /users/{id}/events , /me/events すべてのアプリケーションに対して、メールボックスあたり最大 1,000 のアクティブなサブスクリプションが許可されます。
Outlook 個人用連絡先 ユーザーのメールボックス内のすべての個人用連絡先への変更: /users/{id}/contacts , /me/contacts すべてのアプリケーションに対して、メールボックスあたり最大 1,000 のアクティブなサブスクリプションが許可されます。
セキュリティの警告 特定のアラートに対する変更: /security/alerts/{id}

フィルター処理されたアラートに対する変更: /security/alerts/?$filter={parameters}
詳細については、「Security APIアラート」を参照してください。
Teams の承認 テナント内のすべての承認に対する変更: /solutions/approval/approvalItems 最大サブスクリプションのクォータ:
  • テナント 1 つあたり (すべてのアプリケーションの合計): すべてのアプリケーションでの合計サブスクリプション数 1,000
  • アプリとテナントの組み合わせごと: 1 サブスクリプション。
Teams callRecord すべての通話レコードを変更する: /communications/callRecords

フィルター処理された通話レコードに対する変更: /communications/callRecords?$filter={parameters}
詳細については、「 通話レコードの変更通知」を参照してください。

最大サブスクリプションのクォータ:
  • organization あたり: 合計 100 サブスクリプション。


注: 通話記録の作成も updatedchangeType をトリガーします。
Teams callRecording すべてのレコーディング organization:communications/onlineMeetings/getAllRecordings

特定の会議のすべての記録: communications/onlineMeetings/{onlineMeetingId}/recordings

特定のユーザーによって開催された会議で利用可能になる通話録音: users/{id}/onlineMeetings/getAllRecordings

特定の Teams アプリがインストールされている会議で利用可能になる通話録音: appCatalogs/teamsApps/{id}/installedToOnlineMeetings/getAllRecordings *
最大サブスクリプションのクォータ:
  • アプリとオンライン会議の組み合わせごと: 1
  • アプリとユーザーの組み合わせごと: 1
  • ユーザーあたり (ユーザーが整理したすべての onlineMeetings のレコーディングを追跡するサブスクリプションの場合): 10 サブスクリプション。
  • organization あたり: 合計 10,000 サブスクリプション。
Teams callTranscript All transcripts in an organization:communications/onlineMeetings/getAllTranscripts

特定の会議のすべてのトランスクリプト: communications/onlineMeetings/{onlineMeetingId}/transcripts

特定のユーザーによって開催された会議で利用可能になる通話記録: users/{id}/onlineMeetings/getAllTranscripts

特定の Teams アプリがインストールされている会議で利用可能になる通話記録: appCatalogs/teamsApps/{id}/installedToOnlineMeetings/getAllTrancripts *
最大サブスクリプションのクォータ:
  • アプリとオンライン会議の組み合わせごと: 1
  • アプリとユーザーの組み合わせごと: 1
  • ユーザーあたり (ユーザーによって開催されたすべての onlineMeetings のトランスクリプトを追跡するサブスクリプションの場合): 10 サブスクリプション。
  • organization あたり: 合計 10,000 サブスクリプション。
Teams チャット テナント内のチャットに対する変更: /chats

特定のチャットへの変更: /chats/{id}

notifyOnUserSpecificProperties クエリ パラメーターを使用して特定のチャットを変更します。/chats/{id}?notifyOnUserSpecificProperties={Boolean}

特定の Teams アプリがインストールされている organization 内のすべてのチャットへの変更:/appCatalogs/teamsApps/{id}/installedToChats

特定のユーザーが参加しているすべてのチャットへの変更: /users/{id}/chats

notifyOnUserSpecificProperties クエリ パラメーターを使用して、特定のユーザーが参加しているすべてのチャットへの変更:/users/{id}/chats?notifyOnUserSpecificProperties={Boolean}
最大サブスクリプションのクォータ:
  • アプリとチャットの組み合わせごと: 1 サブスクリプション。
  • organization あたり: 合計 10,000 サブスクリプション。
  • ユーザーあたり (特定のユーザーが参加しているすべてのチャットを追跡するサブスクリプションの場合): 10 サブスクリプション。
Teams chatMessage すべてのチームのすべてのチャネルのチャット メッセージに対する変更: /teams/getAllMessages

特定のチャネルのチャット メッセージに対する変更: /teams/{id}/channels/{id}/messages

すべてのチャットのチャット メッセージに対する変更: /chats/getAllMessages

特定のチャットのチャット メッセージに対する変更: /chats/{id}/messages

特定のユーザーが参加しているすべてのチャットのチャット メッセージに対する変更: /users/{id}/chats/getAllMessages

特定の Teams アプリがインストールされている organization 内のすべてのチャットのチャット メッセージに対する変更:/appCatalogs/teamsApps/{id}/installedToChats/getAllMessages
最大サブスクリプションのクォータ:
  • アプリとチャネルまたはチャットの組み合わせごと: 1 サブスクリプション。
  • ユーザーあたり (ユーザーが参加しているすべてのチャットでチャット メッセージを追跡するサブスクリプションの場合): 10 サブスクリプション。
  • organization あたり: 合計 10,000 サブスクリプション。
Teams チャネル すべてのチームのチャネルに対する変更: /teams/getAllChannels

特定のチームのチャネルに対する変更: /teams/{id}/channels
最大サブスクリプションのクォータ:
  • アプリとチームの組み合わせごと: 1 サブスクリプション。
  • organization あたり: 合計 10,000 サブスクリプション。
Teams conversationMember 特定のチームのメンバーシップの変更: /teams/{id}/members

特定のチームの下にあるすべてのチャネルのメンバーシップの変更: teams/{id}/channels/getAllMembers

特定のチャットのメンバーシップの変更: /chats/{id}/members

特定の Teams アプリがインストールされている organization 内のすべてのチャットのメンバーシップへの変更:/appCatalogs/teamsApps/{id}/installedToChats/getAllMembers

すべてのチャットのメンバーシップの変更: /chats/getAllMembers
最大サブスクリプションのクォータ:
  • アプリとチームの組み合わせごと: 1 サブスクリプション。
  • organization あたり: 合計 10,000 サブスクリプション。
Teams onlineMeeting* オンライン会議への変更: /communications/onlineMeetings(joinWebUrl='{encodedJoinWebUrl}')/meetingCallEvents $select を使用して選択したプロパティのみを返すことはサポートしていません。 リッチ通知は、変更されたインスタンスのすべてのプロパティで構成されます。 オンライン会議につき、アプリケーションごとに 1 つのサブスクリプションが許可されます。 詳細については、「 Microsoft Teams 会議通話イベントの更新の変更通知を受け取る」を参照してください。
Teams プレゼンス 1 人のユーザーのプレゼンスに対する変更: /communications/presences/{id}

複数のユーザーのプレゼンスに対する変更: /communications/presences?$filter=id in ({id},{id}...)
複数のユーザーのプレゼンスのサブスクリプションは、650 人の個別ユーザーに制限されます。 $select を使用して選択したプロパティのみを返すことはサポートしていません。 リッチ通知は、変更されたインスタンスのすべてのプロパティで構成されます。 委任されたユーザーごとにアプリケーションごとに 1 つのサブスクリプションが許可されます。 詳細については、「 Microsoft Teams でのプレゼンス更新の変更通知を受け取る」を参照してください。
Teams チーム テナント内のチームに対する変更: /teams

特定のチームに対する変更: /teams/{id}
最大サブスクリプションのクォータ:
  • アプリとチームの組み合わせごと: 1 サブスクリプション。
  • organization あたり: 合計 10,000 サブスクリプション。
Teams Shifts offerShiftRequest チーム内のオファー シフト要求に対する変更: /teams/{id}/schedule/offerShiftRequests 最大サブスクリプションのクォータ:
  • アプリごととリソース パスの組み合わせ: テナントあたり 1 つのサブスクリプション。
  • リソース パスおよびユーザーの組み合わせごと: テナントあたり 10 の委任されたユーザー サブスクリプション。
Teams Shifts openShiftChangeRequest チームの空きシフト要求に対する変更: /teams/{id}/schedule/openShiftChangeRequests 最大サブスクリプションのクォータ:
  • アプリごととリソース パスの組み合わせ: テナントあたり 1 つのサブスクリプション。
  • ユーザーとリソース パスの組み合わせごと: 10 個のサブスクリプション。
  • organization あたり: 合計 10,000 サブスクリプション。
Teams シフト シフト チーム内のシフトに対する変更: /teams/{id}/schedule/shifts 最大サブスクリプションのクォータ:
  • アプリごととリソース パスの組み合わせ: テナントあたり 1 つのサブスクリプション。
  • ユーザーとリソース パスの組み合わせごと: 10 個のサブスクリプション。
  • organization あたり: 合計 10,000 サブスクリプション。
Teams Shifts swapShiftsChangeRequest チーム内のスワップ シフト要求に対する変更: /teams/{id}/schedule/swapShiftsChangeRequests 最大サブスクリプションのクォータ:
  • アプリごととリソース パスの組み合わせ: テナントあたり 1 つのサブスクリプション。
  • ユーザーとリソース パスの組み合わせごと: 10 個のサブスクリプション。
  • organization あたり: 合計 10,000 サブスクリプション。
Teams Shifts timeOffRequest チーム内の休暇要求に対する変更: /teams/{id}/schedule/timeOffRequests 最大サブスクリプションのクォータ:
  • アプリごととリソース パスの組み合わせ: テナントあたり 1 つのサブスクリプション。
  • ユーザーとリソース パスの組み合わせごと: 10 個のサブスクリプション。
  • organization あたり: 合計 10,000 サブスクリプション。
todoTask 特定のタスク リスト内のすべてのタスクに対する変更: /me/todo/lists/{todoTaskListId}/tasks -
user すべてのユーザーに対する変更: /users

特定のユーザーに対する変更: /users/{id}
最大サブスクリプションのクォータ:
  • アプリあたり (すべてのテナントを合わせた場合): 合計 50,000 サブスクリプション。
  • テナントあたり (すべてのアプリケーションを組み合わせた場合): すべてのアプリで合計 1,000 のサブスクリプション
  • アプリとテナントの組み合わせごと: 合計 100 サブスクリプション。


outlook.com などの個人用 Microsoft アカウントではサポートされていません。

Azure AD B2C テナントではサポートされていません。

注: ユーザーの作成と論理的な削除も updatedchangeType をトリガーします。

注:

多くのリソースには、そのリソースに対して作成できるサブスクリプションの数に関する制限またはクォータがあります。 この制限を超えると、サブスクリプションを作成しようとすると、 403 Forbidden エラー応答が生成されます。 エラー応答の message プロパティにより、超過した制限が説明されます。

これらのリソースの一部はリッチ通知 (リソース データを含む通知) をサポートしています。 詳細については、「 リソース データを含む変更通知の設定」を参照してください。

注: /users/{id} で始まるリソース パスでは、/me を受け入れて、サインインしているユーザーを参照することができます。

アクセス許可

一般に、サブスクリプション操作にはリソースへの読み取りアクセス許可が必要です。 たとえば、メッセージの通知を受信するには、アプリに Mail.Read アクセス許可が必要です。 記事「サブスクリプションを作成する」では、リソースの種類ごとに必要なアクセス許可がリストされています。 次の一覧表に、アプリが特定のリソースの種類に対して Webhook を使用するために要求できるアクセス許可の種類を示します。

アクセス許可の種類 サポートされているリソースの種類
委任 - 職場または学校アカウント aiInsights, aiInteraction, alert, callRecording, callTranscript, channel, chat, chatMessage (プレビュー), contact, conversation, conversationMember, driveItem, event, group, list, message, offerShiftRequest, openShiftChangeRequest, presence, shift, swapShiftsChangeRequest, team, timeOffRequest, todoTask, user, baseTask (非推奨)
委任 - 個人用の Microsoft アカウント contact, driveItem, event, list, message, todoTask, baseTask (非推奨)
アプリケーション aiInsights、aiInteraction、アラート、callRecord、承認、callRecording、callTranscript、チャネル、チャット、chatMessage、contact、conversationMember、driveItem、event、group、list、message、offerShiftRequest、onlineMeeting、openShiftChangeRequest、プリンター、 printTaskDefinition, shift, swapShiftsChangeRequest, team, timeOffRequest, user