Actualizar suscripción
Espacio de nombres: microsoft.graph
Importante
Las API de la versión /beta
de Microsoft Graph están sujetas a cambios. No se admite el uso de estas API en aplicaciones de producción. Para determinar si una API está disponible en la versión 1.0, use el selector de Versión.
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.
Nota:
Algunos recursos admiten notificaciones de cambio en varios escenarios, cada uno de los cuales puede requerir permisos diferentes. En esos casos, use la ruta de acceso del recurso para diferenciar los escenarios.
Recurso admitido | Delegado (cuenta profesional o educativa) | Delegado (cuenta de Microsoft personal) | Aplicación |
---|---|---|---|
approvalItems | No admitida. | No admitida. | ApprovalSolution.ReadWrite.All |
callRecord | No admitida. | No admitida. | CallRecords.Read.All |
callRecording communications/onlineMeetings/getAllRecordings Cualquier grabación estará disponible en el inquilino. |
No admitida. | No admitida. | OnlineMeetingRecording.Read.All |
callRecording communications/onlineMeetings/{onlineMeetingId}/recordings Cualquier grabación estará disponible para 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 |
callRecording appCatalogs/teamsApps/{id}/installedToOnlineMeetings/getAllRecordings Grabación de llamadas que está disponible en una reunión en la que se instala una aplicación de Teams determinada. |
No admitida. | No admitida. | OnlineMeetingRecording.Read.All, OnlineMeetingRecording.Read.Chat |
callTranscript communications/onlineMeetings/getAllTranscripts Cualquier transcripción estará disponible en el inquilino. |
No admitida. | No admitida. | OnlineMeetingTranscript.Read.All |
callTranscript communications/onlineMeetings/{onlineMeetingId}/transcripts Cualquier transcripción estará disponible para 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 |
callTranscript appCatalogs/teamsApps/{id}/installedToOnlineMeetings/getAllTranscripts Transcripción de llamadas que está disponible en una reunión en la que se instala una aplicación de Teams determinada. |
No admitida. | No admitida. | OnlineMeetingTranscript.Read.All, OnlineMeetingTranscript.Read.Chat |
channel /teams/getAllChannels Todos los canales de una organización. |
No admitida. | No admitida. | Channel.ReadBasic.All, ChannelSettings.Read.All |
channel /teams/{id}/channels Todos los canales de un equipo determinado de una organización. |
Channel.ReadBasic.All, ChannelSettings.Read.All | No admitida. | Channel.ReadBasic.All, ChannelSettings.Read.All |
chat /chats Todos los chats de una organización. |
No admitida. | No admitida. | Chat.ReadBasic.All, Chat.Read.All, Chat.ReadWrite.All |
chat /chats/{id} Un chat en particular. |
Chat.ReadBasic, Chat.Read, Chat.ReadWrite | No admitida. | 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 admitida. | No admitida. | Chat.ReadBasic.WhereInstalled, Chat.Read.WhereInstalled, Chat.ReadWrite.WhereInstalled |
chat /users/{id}/chats Todos los chats de los que forma parte un usuario determinado. |
Chat.ReadBasic, Chat.Read, Chat.ReadWrite | No admitida. | Chat.ReadBasic.All, Chat.Read.All, Chat.ReadWrite.All |
chatMessage /teams/{id}/channels/{id}/messages Todos los mensajes y respuestas de un canal determinado. |
ChannelMessage.Read.All, Group.Read.All, Group.ReadWrite.All | No admitida. | ChannelMessage.Read.Group, ChannelMessage.Read.All |
chatMessage /teams/getAllMessages Todos los mensajes de canal de la organización. |
No admitida. | No admitida. | ChannelMessage.Read.All |
chatMessage /chats/{id}/messages Todos los mensajes de un chat. |
Chat.Read, Chat.ReadWrite | No admitida. | Chat.Read.All |
chatMessage /chats/getAllMessages Todos los mensajes de chat de una organización. |
No admitida. | No admitida. | 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 admitida. | 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 admitida. | No admitida. | Chat.Read.WhereInstalled, Chat.ReadWrite.WhereInstalled |
contact | Contacts.Read | Contacts.Read | Contacts.Read |
conversationMember /chats/getAllMembers Miembros de todos los chats de una organización. |
No admitida. | No admitida. | ChatMember.Read.All, ChatMember.ReadWrite.All, Chat.ReadBasic.All, Chat.Read.All, Chat.ReadWrite.All. |
conversationMember /chats/{id}/members Miembros de un chat determinado. |
ChatMember.Read, ChatMember.ReadWrite, Chat.ReadBasic, Chat.Read, Chat.ReadWrite | No admitida. | 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/getAllMembers Miembros de todos los equipos de una organización. |
No admitida. | No admitida. | TeamMember.Read.All, TeamMember.ReadWrite.All |
conversationMember /teams/{id}/members Miembros de un equipo determinado. |
TeamMember.Read.All | No admitida. | TeamMember.Read.All |
conversationMember /teams/{id}/channels/getAllMembers Miembros de todos los canales privados de un equipo determinado. |
No admitida. | No admitida. | ChannelMember.Read.All |
conversationMember /teams/getAllChannels/getAllMembers |
No admitida. | No admitida. | ChannelMember.Read.All |
driveItem (OneDrive personal del usuario) | No admitida. | Files.ReadWrite | No admitida. |
driveItem (OneDrive para el trabajo o la escuela) | Files.ReadWrite.All | No admitida. | Files.ReadWrite.All |
evento | Calendars.Read | Calendars.Read | Calendars.Read |
grupo | Group.Read.All | No admitida. | Group.Read.All |
conversación de grupo | Group.Read.All | No admitida. | No admitida. |
lista | Sites.ReadWrite.All | No admitida. | 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 |
reunión en línea | No admitida. | No admitida. | OnlineMeetings.Read.All, OnlineMeetings.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 admitida. | No admitida. | Printer.Read.All, Printer.ReadWrite.All |
printTaskDefinition | No admitida. | No admitida. | PrintTaskDefinition.ReadWrite.All |
alerta de seguridad | SecurityEvents.ReadWrite.All | No admitida. | 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 admitida. | No admitida. | Team.ReadBasic.All, TeamSettings.Read.All |
team /teams/{id} Un equipo determinado. |
Team.ReadBasic.All, TeamSettings.Read.All | No admitida. | 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 admitida. |
user | User.Read.All | User.Read.All | User.Read.All |
virtualEventWebinar | VirtualEvent.Read | No admitida. | VirtualEvent.Read.All |
baseTask (en desuso) | Tasks.ReadWrite | Tasks.ReadWrite | No admitida. |
Nota:
Los permisos siguientes usan el consentimiento específico del recurso:
- OnlineMeetingRecording.Read.Chat
- OnlineMeetingTranscript.Read.Chat
- ChatSettings.Read.Chat
- ChatSettings.ReadWrite.Chat
- Chat.Manage.Chat
- ChannelMessage.Read.Group
- ChatMember.Read.Chat
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/getAllMessages
y /appCatalogs/teamsApps/{id}/installedToChats/getAllMessages
son API de uso medido; se pueden aplicar modelos de pago y requisitos de licencia .
/teams/getAllMessages
y /chats/getAllMessages
admiten tanto los modelos de model=B
model=A
pago como , /me/chats/getAllMessages
/users/{id}/chats/getAllMessages
y /appCatalogs/teamsApps/{id}/installedToChats/getAllMessages
solo model=B
admiten .
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/getAllMembers
y /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=B
admite .
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 aplican más limitaciones a las suscripciones en 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 a cualquier subcarpeta de la unidad. En OneDrive para el trabajo o la escuela, solo puede suscribirse a la carpeta raíz. Las notificaciones de cambio se envían para los cambios solicitados en la carpeta suscrita o en cualquier archivo, carpeta u 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 contacto, evento o mensaje de Outlook y, opcionalmente, especificar en la carga de la solicitud POST si se deben incluir datos de recursos cifrados en las notificaciones.
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.
onlineMeetings, presencia
Las suscripciones onlineMeetings y presence requieren cifrado para las notificaciones con datos de recursos. Se produce un error en la creación de la suscripción si no se especifican encryptionCertificate y encryptionCertificateId si los datos de recursos se desean en las notificaciones. Para obtener más información sobre la presencia y las suscripciones a reuniones en línea, consulte Obtención de notificaciones de cambio para las actualizaciones de presencia en Microsoft Teams y Obtención de notificaciones de cambio para reuniones en línea.
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.
Nombre | Tipo | Descripción |
---|---|---|
expirationDateTime | DateTimeOffset | Especifica la fecha y hora en UTC cuando expira la suscripción. Para la suscripción máxima admitida, el período de tiempo varía en función del recurso. |
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/beta/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":"secretClientValue",
"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"
}