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 テナントではサポートされていません。

    手記: グループの作成と論理的な削除によって、 updatedchangeType もトリガーされます。
  • 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}
    詳細については、「 セキュリティ API アラート」を参照してください。
    Teams の承認 テナント内のすべての承認に対する変更: /solutions/approval/approvalItems 最大サブスクリプションのクォータ:
  • テナント 1 つあたり (すべてのアプリケーションの合計): すべてのアプリケーションでの合計サブスクリプション数 1,000
  • アプリとテナントの組み合わせごとに:1 つのサブスクリプション。
  • Teams callRecord すべての通話レコードを変更する: /communications/callRecords 最大サブスクリプションのクォータ:
  • 組織ごとに:100 の合計サブスクリプション。

    手記: 呼び出しレコードを作成すると、 updatedchangeType もトリガーされます。
  • Teams callRecording 組織内のすべての記録: communications/onlineMeetings/getAllRecordings

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

    特定のユーザーが開催した会議で使用できる通話記録: users/{id}/onlineMeetings/getAllRecordings

    特定の Teams アプリがインストールされている会議で使用できる通話記録: appCatalogs/teamsApps/{id}/installedToOnlineMeetings/getAllRecordings *
    最大サブスクリプションのクォータ:
  • アプリとオンライン会議の組み合わせごとに: 1
  • アプリとユーザーの組み合わせごとに: 1
  • ユーザーごと (ユーザーが整理したすべての onlineMeetings の記録を追跡するサブスクリプションの場合): 10 個のサブスクリプション。
  • 組織ごとに:合計 10,000 個のサブスクリプション。
  • Teams callTranscript 組織内のすべてのトランスクリプト: communications/onlineMeetings/getAllTranscripts

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

    特定のユーザーが開催した会議で使用できる通話トランスクリプト: users/{id}/onlineMeetings/getAllTranscripts

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

    特定のチャットに対する変更: /chats/{id}

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

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

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

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

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

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

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

    特定のユーザーが含まれるすべてのチャット内のチャット メッセージに対する変更: /users/{id}/chats/getAllMessages

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

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

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

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

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

    すべてのチャットのメンバーシップに対する変更: /chats/getAllMembers
    最大サブスクリプションのクォータ:
  • アプリとチームの組み合わせごとに:1 つのサブスクリプション。
  • 組織ごとに:合計 10,000 個のサブスクリプション。
  • Teams onlineMeeting* オンライン会議の変更: /communications/onlineMeetings/?$filter=JoinWebUrl eq {joinWebUrl}
    Teams プレゼンス 1 人のユーザーのプレゼンスに対する変更: /communications/presences/{id}

    複数のユーザー プレゼンスに対する変更: /communications/presences?$filter=id in ({id},{id}...)
    Teams チーム テナント内の任意のチームに対する変更: /teams

    特定のチームへの変更: /teams/{id}
    最大サブスクリプションのクォータ:
  • アプリとチームの組み合わせごとに:1 つのサブスクリプション。
  • 組織ごとに:合計 10,000 個のサブスクリプション。
  • Teams Shifts オファーShiftRequest チーム内のオファー シフト要求に対する変更: /teams/{id}/schedule/offerShiftRequests 最大サブスクリプションのクォータ:
  • アプリとリソース パスの組み合わせごとに:テナントごとに 1 つのサブスクリプション。
  • リソース パスとユーザーの組み合わせごと: テナントごとに 10 個の委任されたユーザー サブスクリプション。
  • Teams Shifts openShiftChangeRequest チーム内のオープン シフト要求に対する変更: /teams/{id}/schedule/openShiftChangeRequests 最大サブスクリプションのクォータ:
  • アプリとリソース パスの組み合わせごとに:テナントごとに 1 つのサブスクリプション。
  • ユーザーとリソース パスの組み合わせごとに:10 個のサブスクリプション。
  • 組織ごとに:合計 10,000 個のサブスクリプション。
  • Teams Shifts シフト チーム内の任意のシフトに対する変更: /teams/{id}/schedule/shifts 最大サブスクリプションのクォータ:
  • アプリとリソース パスの組み合わせごとに:テナントごとに 1 つのサブスクリプション。
  • ユーザーとリソース パスの組み合わせごとに:10 個のサブスクリプション。
  • 組織ごとに:合計 10,000 個のサブスクリプション。
  • Teams Shifts swapShiftsChangeRequest チーム内のスワップ シフト要求に対する変更: /teams/{id}/schedule/swapShiftsChangeRequests 最大サブスクリプションのクォータ:
  • アプリとリソース パスの組み合わせごとに:テナントごとに 1 つのサブスクリプション。
  • ユーザーとリソース パスの組み合わせごとに:10 個のサブスクリプション。
  • 組織ごとに:合計 10,000 個のサブスクリプション。
  • Teams Shifts timeOffRequest チーム内の任意の休暇要求に対する変更: /teams/{id}/schedule/timeOffRequests 最大サブスクリプションのクォータ:
  • アプリとリソース パスの組み合わせごとに:テナントごとに 1 つのサブスクリプション。
  • ユーザーとリソース パスの組み合わせごとに:10 個のサブスクリプション。
  • 組織ごとに:合計 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 を使用するために要求できるアクセス許可の種類を示します。

    アクセス許可の種類 サポートされているリソースの種類
    委任 - 職場または学校アカウント 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