次の方法で共有


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

リソース サポートされているリソース パス 制限事項
クラウド印刷の printer 印刷ジョブをダウンロードする準備ができたときに変更されます (jobFetchable イベント): /print/printers/{id}/jobs -
クラウド印刷の printTaskDefinition キューに有効なジョブがある場合の変更 (jobStarted イベント): /print/printtaskdefinition/{id}/tasks -
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 テナントではサポートされていません。

    手記:グループの作成と論理的な削除によって、changeType もトリガーされますupdated
  • 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 個のサブスクリプション。

    手記:呼び出しレコードを作成すると、changeType もトリガーされますupdated
  • 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 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 オファーShiftRequest チーム内のオファー シフト要求に対する変更: /teams/{id}/schedule/offerShiftRequests 最大サブスクリプションのクォータ:
  • アプリとリソース パスの組み合わせごとに:テナントごとに 1 つのサブスクリプション。
  • リソース パスとユーザーの組み合わせごと: テナントごとに 10 個の委任されたユーザー サブスクリプション。
  • Teams Shifts openShiftChangeRequest チーム内のオープン シフト要求に対する変更: /teams/{id}/schedule/openShiftChangeRequests 最大サブスクリプションのクォータ:
  • アプリとリソース パスの組み合わせごとに:テナントごとに 1 つのサブスクリプション。
  • ユーザーとリソース パスの組み合わせごとに:10 個のサブスクリプション。
  • organizationあたり: 合計 10,000 個のサブスクリプション。
  • Teams Shifts シフト チーム内の任意のシフトに対する変更: /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 テナントではサポートされていません。

    手記:ユーザーの作成と論理的な削除によって、changeType もトリガーされますupdated
  • 注:

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

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

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

    アクセス許可

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

    アクセス許可の種類 サポートされているリソースの種類
    委任 - 職場または学校アカウント alert, callTranscript, channel, chat, chatMessage (プレビュー), 連絡先, 会話, conversationMember, driveItem, イベント, グループ, リスト, メッセージ, offerShiftRequest, openShiftChangeRequest, presence, shift, swapShiftsChangeRequest, team, timeOffRequesttodoTaskuserbaseTask (非推奨)
    委任 - 個人用の Microsoft アカウント contact, driveItem, イベント, リスト, メッセージ, todoTask, baseTask (非推奨)
    アプリケーション alert, callRecord, approvals, callTranscript, channel, chat, chatMessage, contact, conversationMember, driveItem, イベント, グループ, リスト, メッセージ, offerShiftRequest, onlineMeeting, openShiftChangeRequest, printer, printTaskDefinition, shift, swapShiftsChangeRequest, チーム, timeOffRequest, user