サブスクリプションを更新する

名前空間: microsoft.graph

サブスクリプションを更新するには、サブスクリプションの有効期限を延長します。

[ アクセス許可 ] セクションの表に、変更通知のサブスクライブをサポートするリソースの一覧を示します。

サブスクリプションは、リソースの種類によって異なる長い時間が経過すると期限切れになります。 変更通知が見つからないのを防ぐために、アプリは有効期限の前にサブスクリプションを更新する必要があります。 各リソースの種類の サブスクリプション の最大長については、「サブスクリプション」を参照してください。

この API は、次の国内クラウド展開で使用できます。

グローバル サービス 米国政府機関 L4 米国政府機関 L5 (DOD) 21Vianet が運営する中国

アクセス許可

要求されたリソースとアクセス許可の種類 (委任またはアプリケーション) に応じて、以下の表で指定されているアクセス許可がこの API を呼び出すため必要な最小限の特権となります。 より多くの特権アクセス許可を選択する前に注意することを含め、詳細については、[アクセス許可] で次のアクセス許可を検索してください。

サポートされているリソース 委任 (職場または学校のアカウント) 委任 (個人用 Microsoft アカウント) アプリケーション
callRecord 非サポート 非サポート CallRecords.Read.All
callRecording
communications/onlineMeetings/getAllRecordings
organization内のすべての録音。
サポートされていません。 サポートされていません。 OnlineMeetingRecording.Read.All
callRecording
communications/onlineMeetings/{onlineMeetingId}/recordings
特定の会議のすべての記録。
OnlineMeetingRecording.Read.All サポートされていません。 OnlineMeetingRecording.Read.All
callRecording
users/{userId}/onlineMeetings/getAllRecordings
特定のユーザーが開催した会議で使用可能になる通話記録。
OnlineMeetingRecording.Read.All サポートされていません。 OnlineMeetingRecording.Read.All
callTranscript
communications/onlineMeetings/getAllTranscripts
organization内のすべてのトランスクリプト。
サポートされていません。 サポートされていません。 OnlineMeetingTranscript.Read.All
callTranscript
communications/onlineMeetings/{onlineMeetingId}/transcripts
特定の会議のすべてのトランスクリプト。
OnlineMeetingTranscript.Read.All サポートされていません。 OnlineMeetingTranscript.Read.All
callTranscript
users/{userId}/onlineMeetings/getAllTranscripts
特定のユーザーが開催した会議で使用できる通話トランスクリプト。
OnlineMeetingTranscript.Read.All サポートされていません。 OnlineMeetingTranscript.Read.All
チャネル (/teams/getAllChannels – 組織内のすべてのチャネル) 非サポート 非サポート Channel.ReadBasic.All、ChannelSettings.Read.All
チャネル (/teams/{id}/channels) Channel.ReadBasic.All、ChannelSettings.Read.All 非サポート Channel.ReadBasic.All、ChannelSettings.Read.All
チャット (/chats – 組織内のすべてのチャット) サポート対象外 非サポート Chat.ReadBasic.All、 Chat.Read.All、 Chat.ReadWrite.All
チャット (/chats/{id}) Chat.ReadBasic、 Chat.Read、 Chat.ReadWrite 非サポート ChatSettings.Read.Chat*, ChatSettings.ReadWrite.Chat*, Chat.Manage.Chat*, Chat.ReadBasic.All, Chat.Read.All, Chat.ReadWrite.All
チャット
/appCatalogs/teamsApps/{id}/installedToChats
特定の Teams アプリがインストールされているorganization内のすべてのチャット。
サポート対象外 サポート対象外 Chat.ReadBasic.WhereInstalled、Chat.Read.WhereInstalled、Chat.ReadWrite.WhereInstalled
chatMessage (/teams/{id}/channels/{id}/messages) ChannelMessage.Read.All 非サポート ChannelMessage.Read.Group*、ChannelMessage.Read.All
chatMessage (/teams/getAllMessages -- all channel messages in organization) 非サポート 非サポート ChannelMessage.Read.All
chatMessage (/chats/{id}/messages) 非サポート 非サポート Chat.Read.All
chatMessage (/chats/getAllMessages -- all chat messages in organization) 非サポート 非サポート Chat.Read.All
チャット メッセージ (/users/{id}/chats/getAllMessages -- 特定のユーザーが参加しているすべてのチャットのチャット メッセージ) Chat.Read、Chat.ReadWrite 非サポート Chat.Read.All、Chat.ReadWrite.All
chatMessage
/appCatalogs/teamsApps/{id}/installedToChats/getAllMessages
特定の Teams アプリがインストールされているorganization内のすべてのチャットのチャット メッセージ。
非サポート 非サポート Chat.Read.WhereInstalled、Chat.ReadWrite.WhereInstalled
contact Contacts.Read Contacts.Read Contacts.Read
conversationMember (/chats/getAllMembers) サポート対象外 非サポート ChatMember.Read.All, ChatMember.ReadWrite.All, Chat.ReadBasic.All, Chat.Read.All, Chat.ReadWrite.All
conversationMember (/chats/{id}/members) ChatMember.Read, ChatMember.ReadWrite, Chat.ReadBasic, Chat.Read, Chat.ReadWrite サポート対象外 ChatMember.Read.Chat*, Chat.Manage.Chat*, ChatMember.Read.All, ChatMember.ReadWrite.All, Chat.ReadBasic.All, Chat.Read.All, Chat.ReadWrite.All
conversationMember
/appCatalogs/teamsApps/{id}/installedToChats/getAllMembers
特定の Teams アプリがインストールされているorganization内のすべてのチャットのチャット メンバー。
サポートされていません。 サポートされていません。 ChatMember.Read.WhereInstalled、ChatMember.ReadWrite.WhereInstalled、Chat.ReadBasic.WhereInstalled、Chat.Read.WhereInstalled、Chat.ReadWrite.WhereInstalled
conversationMember (/teams/{id}/members) TeamMember.Read.All 非サポート TeamMember.Read.All
conversationMember (/teams/{id}/channels/getAllMembers) サポート対象外 非サポート ChannelMember.Read.All
driveItem (ユーザーの個人用 OneDrive) サポート対象外 Files.ReadWrite サポート対象外
driveItem (OneDrive for Business) Files.ReadWrite.All サポート対象外 Files.ReadWrite.All
イベント Calendars.Read Calendars.Read Calendars.Read
グループ Group.Read.All サポート対象外 Group.Read.All
グループ会話 Group.Read.All サポート対象外 非サポート
リスト Sites.ReadWrite.All サポート対象外 Sites.ReadWrite.All
メッセージ Mail.ReadBasic, Mail.Read Mail.ReadBasic, Mail.Read Mail.Read
プレゼンス Presence.Read.All サポートされていません。 サポートされていません。
プリンター 非サポート 非サポート Printer.Read.All, Printer.ReadWrite.All
printTaskDefinition 非サポート 非サポート PrintTaskDefinition.ReadWrite.All
セキュリティの警告 SecurityEvents.ReadWrite.All サポート対象外 SecurityEvents.ReadWrite.All
team (/teams – 組織内のすべてのチーム) 非サポート サポート対象外 Team.ReadBasic.All、TeamSettings.Read.All
team (/teams/{id}) Team.ReadBasic.All、TeamSettings.Read.All 非サポート Team.ReadBasic.All、TeamSettings.Read.All
todoTask Tasks.ReadWrite Tasks.ReadWrite 非サポート
user User.Read.All User.Read.All User.Read.All
virtualEventWebinar VirtualEvent.Read サポートされていません。 VirtualEvent.Read.All

: * でマークされた権限は、リソース固有の同意を使用します。

chatMessage

chatMessage サブスクリプションは、リソース データを含めるように指定できます。 リソース データを含めるように指定した場合 (includeResourceDatatrue に設定)、暗号化が必要です。 そのようなサブスクリプションに encryptionCertificate が指定されていない場合、サブスクリプションの作成は失敗します。

要求ヘッダーを使用して、Prefer: include-unknown-enum-memberschatMessagemessageTypeの進化可能な列挙型systemEventMessageの for と /chats/{id}/messages resource で次の値を/teams/{id}/channels/{id}/messages取得する必要があります。

注:

/teams/getAllMessages/chats/getAllMessages/me/chats/getAllMessages/users/{id}/chats/getAllMessagesおよび /appCatalogs/teamsApps/{id}/installedToChats/getAllMessages は従量制課金 API です。 支払いモデルとライセンス要件が 適用される場合があります。 /teams/getAllMessages/chats/getAllMessages の両方model=Amodel=B支払いモデル、、/me/chats/getAllMessages/users/{id}/chats/getAllMessages、および のみがサポートmodel=Bされます/appCatalogs/teamsApps/{id}/installedToChats/getAllMessages。 クエリで支払いモデルを指定しない場合は、既定の 評価モード が使用されます。

注:

変更通知のサブスクライブされたリソースの支払いモデルを追加または変更するには、新しい支払いモデルを使用して新しい変更通知サブスクリプションを作成する必要があります。既存の変更通知の更新は機能しません。

conversationMember

conversationMember サブスクリプションを指定して、リソース データを含めることができます。 リソース データを含めるように指定した場合 (includeResourceDatatrue に設定)、暗号化が必要です。 encryptionCertificateが指定されていない場合、サブスクリプションの作成は失敗します。

注:

/teams/getAllMembers/chats/getAllMembers、および /appCatalogs/teamsApps/{id}/installedToChats/getAllMembers は従量制課金 API です。 支払いモデルとライセンス要件が 適用される場合があります。 /teams/getAllMembers/chats/getAllMembers 支払いモデルの両方 model=Amodel=B サポートします。 /appCatalogs/teamsApps/{id}/installedToChats/getAllMembers は のみを model=Bサポートします。 クエリで支払いモデルを指定しない場合は、既定の 評価モード が使用されます。

注:

変更通知のサブスクライブされたリソースの支払いモデルを追加または変更するには、新しい支払いモデルを使用して新しい変更通知サブスクリプションを作成する必要があります。既存の変更通知の更新は機能しません。

チーム、チャネル、チャット

チームチャネルチャット サブスクリプションを指定して、リソース データを含めることができます。 リソース データを含めるように指定した場合 (includeResourceDatatrue に設定)、暗号化が必要です。 encryptionCertificateが指定されていない場合、サブスクリプションの作成は失敗します。

注:

/appCatalogs/teamsApps/{id}/installedToChats には 、ライセンスと支払いの要件があり、特に のみを model=Bサポートしています。 モデルが指定されていない場合は、評価モードが使用されます。

注:

変更通知のサブスクライブされたリソースの支払いモデルを追加または変更するには、新しい支払いモデルを使用して新しい変更通知サブスクリプションを作成する必要があります。既存の変更通知の更新は機能しません。

要求の例

要求本文の リソース プロパティで、model クエリ パラメーターを指定します。

POST https://graph.microsoft.com/v1.0/subscriptions
Content-type: application/json

{
   "changeType": "created",
   "notificationUrl": "https://webhook.azurewebsites.net/api/send/myNotifyClient",
   "resource": "chats/getAllMessages?model=A",
   "expirationDateTime":"2016-11-20T18:23:45.9356913Z",
   "clientState": "secretClientValue",
   "latestSupportedTlsVersion": "v1_2"
}

driveItem

OneDrive アイテムのサブスクリプションには追加の制限が適用されます。 この制限は、サブスクリプションの作成および管理 (取得、更新、削除) に適用されます。

個人用 OneDrive では、そのドライブのルート フォルダーまたは任意のサブフォルダーにサブスクライブできます。 OneDrive for Business の場合、サブスクライブできるのはルート フォルダーのみです。 サブスクライブしたフォルダー、または階層内の任意のファイル、フォルダー、あるいは他の driveItem インスタンスに関する変更の要求された種類についての変更通知が送信されます。 個々のファイルなど、フォルダーではない drive または driveItem インスタンスをサブスクライブすることはできません。

連絡先、イベント、メッセージ

Outlook の 連絡先イベント、または メッセージ リソースの変更にサブスクライブできます。

サブスクリプションの作成と管理 (取得、更新、および削除) には、リソースの読み取りスコープが必要です。 たとえば、メッセージに関する変更通知を受信するには、アプリに Mail.Read アクセス許可が必要です。 Outlook 変更通知は、委任されたアクセス許可スコープとアプリケーション アクセス許可スコープをサポートします。 次の制限がある点に注意してください。

  • 委任されたアクセス許可では、サインインしているユーザーのメールボックス内のフォルダーにあるアイテムのみをサブスクライブできます。 たとえば、委任されたアクセス許可 Calendars.Read を使用して、別のユーザーのメールボックス内のイベントをサブスクライブすることはできません。

  • 共有または委任フォルダーの Outlook 連絡先、イベント、メッセージの変更通知をサブスクライブするには、次のようにします。

    • 対応するアプリケーション アクセス許可を使用して、テナントの任意のユーザーのフォルダーまたはメールボックス内にあるアイテムの変更をサブスクライブします。
    • Outlook 共有アクセス許可 (Contacts.Read.Shared、Calendars.Read.Shared、Mail.Read.Shared、およびその読み取り/書き込みに対応するアクセス許可) は使用しないでください。これは、共有フォルダーまたは委任されたフォルダー内のアイテムに対する通知の変更のサブスクライブをサポート していないため です。

プレゼンス

プレゼンス サブスクリプションでは、リソース データを含む通知の 暗号化 が必要です。 通知にリソース データを含める必要があるときに encryptionCertificateencryptionCertificateId が 指定されていない場合、サブスクリプションの作成は失敗します。 プレゼンス サブスクリプションの詳細については、「 Microsoft Teams でのプレゼンス更新プログラムの変更通知を取得する」を参照してください。

virtualEventWebinar

仮想イベントのサブスクリプションでは、基本的な通知のみがサポートされ、仮想イベントのいくつかのエンティティに制限されます。 サポートされているサブスクリプションの種類の詳細については、「 Microsoft Teams 仮想イベント更新プログラムの変更通知を取得する」を参照してください。

HTTP 要求

PATCH /subscriptions/{id}

要求ヘッダー

名前 説明
Authorization string ベアラー {token}。 必須です。

要求本文

要求本文で、更新すべきプロパティの値のみを指定します。 要求本文に含まれていない既存のプロパティは、以前の値を維持するか、他のプロパティ値の変更に基づいて再計算されます。

次の表に、更新できるプロパティを示します。

名前 説明
expirationDateTime DateTimeOffset サブスクリプションの有効期限が切れる日時を UTC で指定します。 サポートされているサブスクリプションの最大期間は、リソースによって異なります。

応答

成功した場合、このメソッドは 200 OK 応答コードと、応答本文で subscription オブジェクトを返します。

エラーがどのように返されるかの詳細については、「エラー応答」を参照してください。

要求

次の例は要求を示しています。

PATCH https://graph.microsoft.com/v1.0/subscriptions/{id}
Content-type: application/json

{
   "expirationDateTime":"2016-11-22T18:23:45.9356913Z"
}

応答

次の例は応答を示しています。

HTTP/1.1 200 OK
Content-type: application/json

{
  "id":"7f105c7d-2dc5-4530-97cd-4e7ae6534c07",
  "resource":"me/messages",
  "applicationId": "24d3b144-21ae-4080-943f-7067b395b913",
  "changeType":"created,updated",
  "clientState":"subscription-identifier",
  "notificationUrl":"https://webhook.azurewebsites.net/api/send/myNotifyClient",
  "lifecycleNotificationUrl":"https://webhook.azurewebsites.net/api/send/lifecycleNotifications",
  "expirationDateTime":"2016-11-22T18:23:45.9356913Z",
  "creatorId": "8ee44408-0679-472c-bc2a-692812af3437",
  "latestSupportedTlsVersion": "v1_2",
  "encryptionCertificate": "",
  "encryptionCertificateId": "",
  "includeResourceData": false,
  "notificationContentType": "application/json"
}