Compartir a través de


Actualizar suscripción

Espacio de nombres: microsoft.graph

Renueva una suscripción ampliando su tiempo de expiración.

En la tabla de la sección Permisos se enumeran los recursos que admiten la suscripción a notificaciones de cambios.

Las suscripciones expiran después de un período de tiempo que varía según el tipo de recurso. Para evitar que falten notificaciones de cambio, una aplicación debe renovar sus suscripciones con bastante antelación a su fecha de expiración. Consulte suscripción para obtener la longitud máxima de una suscripción para cada tipo de recurso.

Esta API está disponible en las siguientes implementaciones nacionales de nube.

Servicio global Gobierno de EE. UU. L4 Us Government L5 (DOD) China operada por 21Vianet

Permisos

Según el recurso y el tipo de permisos (delegado o de aplicación) solicitado, el permiso especificado en la tabla siguiente es el menos privilegiado necesario para llamar a esta API. Para más información, incluida la toma de precauciones antes de elegir permisos con más privilegios, busque los siguientes permisos en Permisos.

Recurso admitido Delegado (cuenta profesional o educativa) Delegado (cuenta de Microsoft personal) Aplicación
callRecord No compatible No compatible CallRecords.Read.All
callRecording
communications/onlineMeetings/getAllRecordings
Todas las grabaciones de una organización.
No admitida. No admitida. OnlineMeetingRecording.Read.All
callRecording
communications/onlineMeetings/{onlineMeetingId}/recordings
Todas las grabaciones de una reunión específica.
OnlineMeetingRecording.Read.All No admitida. OnlineMeetingRecording.Read.All
callRecording
users/{userId}/onlineMeetings/getAllRecordings
Grabación de llamadas que está disponible en una reunión organizada por un usuario específico.
OnlineMeetingRecording.Read.All No admitida. OnlineMeetingRecording.Read.All
callTranscript
communications/onlineMeetings/getAllTranscripts
Todas las transcripciones de una organización.
No admitida. No admitida. OnlineMeetingTranscript.Read.All
callTranscript
communications/onlineMeetings/{onlineMeetingId}/transcripts
Todas las transcripciones de una reunión específica.
OnlineMeetingTranscript.Read.All No admitida. OnlineMeetingTranscript.Read.All
callTranscript
users/{userId}/onlineMeetings/getAllTranscripts
Transcripción de llamadas que está disponible en una reunión organizada por un usuario específico.
OnlineMeetingTranscript.Read.All No admitida. OnlineMeetingTranscript.Read.All
channel (/teams/getAllChannels: todos los canales de una organización) No compatible No compatible Channel.ReadBasic.All, ChannelSettings.Read.All
channel (/teams/{id}/channels) Channel.ReadBasic.All, ChannelSettings.Read.All No compatible Channel.ReadBasic.All, ChannelSettings.Read.All
chat (/chats: todos los chats de una organización) No compatible No compatible Chat.ReadBasic.All, Chat.Read.All, Chat.ReadWrite.All
chat (/chats/{id}) Chat.ReadBasic, Chat.Read, Chat.ReadWrite No compatible ChatSettings.Read.Chat*, ChatSettings.ReadWrite.Chat*, Chat.Manage.Chat*, Chat.ReadBasic.All, Chat.Read.All, Chat.ReadWrite.All
chat
/appCatalogs/teamsApps/{id}/installedToChats
Todos los chats de una organización donde está instalada una aplicación de Teams determinada.
No se admite No se admite Chat.ReadBasic.WhereInstalled, Chat.Read.WhereInstalled, Chat.ReadWrite.WhereInstalled
chatMessage (/teams/{id}/channels/{id}/messages) ChannelMessage.Read.All No admitido ChannelMessage.Read.Group*, ChannelMessage.Read.All
chatMessage (/teams/getAllMessages: todos los mensajes del canal en la organización) No admitido No admitido ChannelMessage.Read.All
chatMessage (/chats/{id}/messages) No admitido No admitido Chat.Read.All
chatMessage (/chats/getAllMessages: todos los mensajes de chat en la organización) No admitido No admitido Chat.Read.All
chatMessage (/users/{id}/chats/getAllMessages: mensajes de chat para todos los chats de los que forma parte un usuario determinado) Chat.Read, Chat.ReadWrite No compatible Chat.Read.All, Chat.ReadWrite.All
chatMessage
/appCatalogs/teamsApps/{id}/installedToChats/getAllMessages
Mensajes de chat para todos los chats de una organización donde está instalada una aplicación de Teams determinada.
No compatible No se admite Chat.Read.WhereInstalled, Chat.ReadWrite.WhereInstalled
contact Contacts.Read Contacts.Read Contacts.Read
conversationMember (/chats/getAllMembers) No compatible No compatible 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 No compatible 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
Miembros de chat para todos los chats de una organización en la que está instalada una aplicación de Teams determinada.
No admitida. No admitida. ChatMember.Read.WhereInstalled, ChatMember.ReadWrite.WhereInstalled, Chat.ReadBasic.WhereInstalled, Chat.Read.WhereInstalled, Chat.ReadWrite.WhereInstalled
conversationMember (/teams/{id}/members) TeamMember.Read.All No compatible TeamMember.Read.All
conversationMember (/teams/{id}/channels/getAllMembers) No compatible No compatible ChannelMember.Read.All
driveItem (OneDrive personal del usuario) No admitido Files.ReadWrite No admitido
driveItem (OneDrive para la Empresa) Files.ReadWrite.All No admitido Files.ReadWrite.All
evento Calendars.Read Calendars.Read Calendars.Read
grupo Group.Read.All No admitido Group.Read.All
conversación de grupo Group.Read.All No se admite No se admite
lista Sites.ReadWrite.All No se admite Sites.ReadWrite.All
message Mail.ReadBasic, Mail.Read Mail.ReadBasic, Mail.Read Mail.Read
offerShiftRequest
(/teams/{id}/schedule/offerShiftRequests)
Cambios en cualquier solicitud de turno de oferta en un equipo.
Schedule.Read.All, Schedule.ReadWrite.All No admitida. Schedule.Read.All, Schedule.ReadWrite.All
openShiftChangeRequest
(/teams/{id}/schedule/openShiftChangeRequests)
Cambios en cualquier solicitud de turno abierta en un equipo.
Schedule.Read.All, Schedule.ReadWrite.All No admitida. Schedule.Read.All, Schedule.ReadWrite.All
presencia Presence.Read.All No admitida. No admitida.
printer No admitido No admitido Printer.Read.All, Printer.ReadWrite.All
printTaskDefinition No admitido No admitido PrintTaskDefinition.ReadWrite.All
alerta de seguridad SecurityEvents.ReadWrite.All No admitido SecurityEvents.ReadWrite.All
shift
(/teams/{id}/schedule/shifts)
Cambios en cualquier turno de un equipo.
Schedule.Read.All, Schedule.ReadWrite.All No admitida. Schedule.Read.All, Schedule.ReadWrite.All
swapShiftsChangeRequest
(/teams/{id}/schedule/swapShiftsChangeRequests)
Cambios en cualquier solicitud de cambio de turno en un equipo.
Schedule.Read.All, Schedule.ReadWrite.All No admitida. Schedule.Read.All, Schedule.ReadWrite.All
team (/teams: todos los equipos de una organización) No compatible No compatible Team.ReadBasic.All, TeamSettings.Read.All
team (/teams/{id}) Team.ReadBasic.All, TeamSettings.Read.All No compatible Team.ReadBasic.All, TeamSettings.Read.All
timeOffRequest
(/teams/{id}/schedule/timeOffRequests)
Cambios en cualquier solicitud de tiempo de descuento en un equipo.
Schedule.Read.All, Schedule.ReadWrite.All No admitida. Schedule.Read.All, Schedule.ReadWrite.All
todoTask Tasks.ReadWrite Tasks.ReadWrite No compatible
user User.Read.All User.Read.All User.Read.All
virtualEventWebinar VirtualEvent.Read No admitida. VirtualEvent.Read.All

Nota: Los permisos marcados con * usan un consentimiento específico del recurso.

chatMessage

Las suscripciones de chatMessage se pueden especificar para incluir datos de recursos. Si se especifica para incluir datos de recursos (includeResourceData establecido en true), se requiere cifrado. Se produce un error en la creación de la suscripción si no se especifica un encryptionCertificate para dichas suscripciones.

Debe usar el encabezado de Prefer: include-unknown-enum-members solicitud para obtener los siguientes valores en la enumeración evolvablechatMessagemessageType: systemEventMessage for /teams/{id}/channels/{id}/messages y /chats/{id}/messages resource.

Nota:

/teams/getAllMessages, /chats/getAllMessages, /me/chats/getAllMessages, /users/{id}/chats/getAllMessagesy /appCatalogs/teamsApps/{id}/installedToChats/getAllMessages son API de uso medido; se pueden aplicar modelos de pago y requisitos de licencia . /teams/getAllMessagesy /chats/getAllMessages admiten tanto los modelos de model=Bmodel=A pago como , /me/chats/getAllMessages/users/{id}/chats/getAllMessagesy /appCatalogs/teamsApps/{id}/installedToChats/getAllMessages solo model=Badmiten . Si no especifica un modelo de pago en la consulta, se usará el modo de evaluación predeterminado.

Nota:

Para agregar o cambiar un modelo de pago para un recurso suscrito de una notificación de cambio, debe crear una nueva suscripción de notificación de cambio con el nuevo modelo de pago; Actualizar una notificación de cambio existente no funciona.

conversationMember

las suscripciones conversationMember se pueden especificar para incluir datos de recursos. Si se especifica para incluir datos de recursos (includeResourceData establecido en true), se requiere cifrado. Se produce un error en la creación de la suscripción si no se especifica un encryptionCertificate.

Nota:

/teams/getAllMembers, /chats/getAllMembersy /appCatalogs/teamsApps/{id}/installedToChats/getAllMembers son API de uso medido; se pueden aplicar modelos de pago y requisitos de licencia . /teams/getAllMembers y /chats/getAllMembers admiten los modelos de model=A pago y model=B . /appCatalogs/teamsApps/{id}/installedToChats/getAllMembers solo model=Badmite . Si no especifica un modelo de pago en la consulta, se usará el modo de evaluación predeterminado.

Nota:

Para agregar o cambiar un modelo de pago para un recurso suscrito de una notificación de cambio, debe crear una nueva suscripción de notificación de cambio con el nuevo modelo de pago; Actualizar una notificación de cambio existente no funciona.

equipo, canal y chat

se pueden especificar suscripciones de equipo, canal y chat para incluir datos de recursos. Si se especifica para incluir datos de recursos (includeResourceData establecido en true), se requiere cifrado. Se produce un error en la creación de la suscripción si no se especifica un encryptionCertificate.

Puede usar el parámetro de cadena de consulta notifyOnUserSpecificProperties al suscribirse a cambios en un chat determinado o en el nivel de usuario. Al establecer el parámetro de cadena de consulta notifyOnUserSpecificPropertiestrue en durante la creación de la suscripción, se envían dos tipos de cargas al suscriptor. Un tipo contiene propiedades específicas del usuario y el otro se envía sin ellas. Para obtener más información, consulte Obtención de notificaciones de cambios para chats con Microsoft Graph.

Nota:

/appCatalogs/teamsApps/{id}/installedToChats tiene requisitos de concesión de licencias y pagos, que solo admiten específicamente model=B. Si no se especifica ningún modelo, se usará el modo de evaluación.

Nota:

Para agregar o cambiar un modelo de pago para un recurso suscrito de una notificación de cambio, debe crear una nueva suscripción de notificación de cambio con el nuevo modelo de pago; Actualizar una notificación de cambio existente no funciona.

Ejemplo de solicitud

Especifique el parámetro de consulta model en la propiedad del recurso en el cuerpo de la solicitud.

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

Se aplicarán otras limitaciones a las suscripciones de los elementos de OneDrive. Estas limitaciones se aplican para crear y administrar (obtener, actualizar y eliminar) las suscripciones.

En OneDrive personal, puede suscribirse a la carpeta raíz o cualquier subcarpeta de la unidad. En OneDrive para la Empresa, puede suscribirse solo a la carpeta raíz. Se envían las notificaciones de cambio para los tipos de cambios solicitados en la carpeta suscrita o cualquier archivo, carpeta o en otras instancias de driveItem de su jerarquía. No puede suscribirse a instancias de drive o driveItem que no sean carpetas, como archivos individuales.

contactos, eventos y mensajes

Puede suscribirse a los cambios en los recursos de Outlook de contacto, evento o mensaje.

Crear y administrar (obtener, actualizar y eliminar) una suscripción requiere un ámbito de lectura para el recurso. Por ejemplo, para obtener notificaciones de cambio de mensajes, la aplicación necesita el permiso Mail.Read. Las notificaciones de cambio de Outlook admiten ámbitos de permisos delegados y de aplicación. Tenga en cuenta las siguientes limitaciones:

  • El permiso delegado es compatible con la suscripción a los elementos en las carpetas que se encuentran solo en el buzón del usuario que ha iniciado sesión. Por ejemplo, no puede usar el permiso delegado Calendars.Read para suscribirse a eventos en el buzón de otro usuario.

  • Para suscribirse y cambiar las notificaciones de eventos, contactos o mensajes de Outlook en carpetas compartidas o delegadas:

    • Use los permisos de aplicación correspondientes para suscribirse a los cambios de los elementos de una carpeta o un buzón de cualquier usuario del espacio empresarial.
    • No use los permisos de uso compartido de Outlook (Contacts.Read.Shared, Calendars.Read.Shared, Mail.Read.Shared y sus homólogos de lectura y escritura), ya que no admiten la suscripción a notificaciones de cambios en elementos de carpetas compartidas o delegadas.

presencia

las suscripciones de presencia requieren cifrado para las notificaciones que incluyen datos de recursos. Se produce un error en la creación de la suscripción si encryptionCertificate y encryptionCertificateId no se especifican cuando las notificaciones necesitan incluir datos de recursos. Para obtener más información sobre las suscripciones de presencia, consulte Obtención de notificaciones de cambio para las actualizaciones de presencia en Microsoft Teams.

virtualEventWebinar

Las suscripciones en eventos virtuales solo admiten notificaciones básicas y están limitadas a algunas entidades de un evento virtual. Para obtener más información sobre los tipos de suscripción admitidos, consulte Obtención de notificaciones de cambios para las actualizaciones de eventos virtuales de Microsoft Teams.

Solicitud HTTP

PATCH /subscriptions/{id}

Encabezados de solicitud

Nombre Tipo Descripción
Authorization string {token} de portador. Obligatorio. Obtenga más información sobre la autenticación y la autorización.

Cuerpo de la solicitud

En el cuerpo de la solicitud, proporcione solo los valores de las propiedades que se van a actualizar. Las propiedades existentes que no se incluyen en el cuerpo de la solicitud mantienen sus valores anteriores o se recalculan en función de los cambios realizados en otros valores de propiedad.

En la tabla siguiente se especifican las propiedades que se pueden actualizar.

El cuerpo de la solicitud debe incluir al menos una de las propiedades enumeradas.

Nombre Tipo Descripción
expirationDateTime DateTimeOffset Especifica la fecha y hora en UTC cuando expira la suscripción. La duración máxima de la suscripción admitida varía en función del recurso.
notificationUrl Cadena Esta dirección URL debe usar el protocolo HTTPS. Cualquier parámetro de cadena de consulta incluido en la propiedad notificationUrl se incluye en la solicitud HTTP POST cuando Microsoft Graph envía las notificaciones de cambio.

Respuesta

Si se ejecuta correctamente, este método devuelve un código de respuesta 200 OK y el objeto subscription en el cuerpo de la respuesta.

Vea Respuestas de error para obtener detalles sobre la manera en que se devuelven los errores.

Ejemplo

Solicitud

En el ejemplo siguiente se muestra la solicitud.

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

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

Respuesta

En el ejemplo siguiente se muestra la respuesta.

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"
}