Usar la API de Microsoft Graph para obtener notificaciones de cambios
Espacio de nombres: microsoft.graph
La API de REST de Microsoft Graph utiliza un mecanismo webhook para entregar notificaciones a los clientes. Un cliente es un servicio web que configura su propia dirección URL para recibir notificaciones. Las aplicaciones cliente utilizan notificaciones para actualizar su estado cuando se realizan cambios. Para obtener más información, incluido cómo suscribirse y controlar las notificaciones de entrada, vea Configurar las notificaciones de cambios en los datos de usuario.
Una aplicación puede suscribirse a los cambios en los recursos de Microsoft Graph enumerados en la tabla, lo que también indica los límites que se aplican a las suscripciones a los recursos. Cuando se supera cualquier límite, los intentos de crear una suscripción producirán una 403 Forbidden
respuesta de error. La propiedad message de la respuesta de error explicará el límite que se ha superado.
Nota:
Las suscripciones a recursos marcadas con un asterisco (*
) solo están disponibles en el punto de /beta
conexión.
Recurso | Rutas de acceso de recursos admitidas | Limitaciones |
---|---|---|
Impresora para impresión en la nube | Cambia cuando un trabajo de impresión está listo para descargarse (evento jobFetchable): /print/printers/{id}/jobs |
- |
Impresión en la nube printTaskDefinition | Cambia cuando hay un trabajo válido en la cola (evento jobStarted): /print/printtaskdefinition/{id}/tasks |
- |
driveItem en OneDrive (personal) | Cambios en el contenido de la jerarquía de cualquier carpeta: /users/{id}/drive/root |
- |
driveItem en OneDrive para la Empresa | Cambios en el contenido dentro de la jerarquía de la carpeta raíz: /drives/{id}/root , /users/{id}/drive/root |
- |
group | Cambios en todos los grupos: /groups Cambios en un grupo específico: /groups/{id} Cambios en los propietarios de un grupo específico: /groups/{id}/owners Cambios en los miembros de un grupo específico: /groups/{id}/members |
Cuotas de suscripción permitidas: No se admite para inquilinos de Azure AD B2C. Problema conocido para la suscripción changeType. |
lista en un sitio de SharePoint | Cambios en el contenido de la lista: /sites/{site-id}/lists/{list-id} |
- |
conversación de grupo de Microsoft 365 | Cambios en las conversaciones de un grupo: groups/{id}/conversations |
- |
mensaje de Outlook | Cambios en todos los mensajes del buzón de un usuario: /users/{id}/messages , /me/messages Cambios en los mensajes de la Bandeja de entrada de un usuario: /users/{id}/mailFolders('inbox')/messages , /me/mailFolders('inbox')/messages |
Se permite un máximo de 1000 suscripciones activas por buzón para todas las aplicaciones. |
evento de Outlook | Cambios en todos los eventos del buzón de un usuario: /users/{id}/events , /me/events |
Se permite un máximo de 1000 suscripciones activas por buzón para todas las aplicaciones. |
contacto personal de Outlook | Cambios en todos los contactos personales del buzón de un usuario: /users/{id}/contacts , /me/contacts |
Se permite un máximo de 1000 suscripciones activas por buzón para todas las aplicaciones. |
alerta de seguridad | Cambios en una alerta específica: /security/alerts/{id} Cambios en las alertas filtradas: /security/alerts/?$filter={parameters} |
- |
callRecord de Teams | Cambios en todos los registros de llamadas: /communications/callRecords |
Cuotas de suscripción permitidas: |
Chat de Teams | Cambios en cualquier chat del inquilino: /chats Cambios en un chat específico: /chats/{id} Cambios en todos los chats de una organización donde está instalada una aplicación de Teams determinada: /appCatalogs/teamsApps/{id}/installedToChats |
Cuotas de suscripción permitidas: |
chatmessage de Teams | Cambios en los mensajes de chat en todos los canales de todos los equipos: /teams/getAllMessages Cambios en los mensajes de chat en un canal específico: /teams/{id}/channels/{id}/messages Cambios en los mensajes de chat en todos los chats: /chats/getAllMessages Cambios en los mensajes de chat en un chat específico: /chats/{id}/messages Los cambios en los mensajes de chat de todos los chats de los que forma parte un usuario determinado son parte de: /users/{id}/chats/getAllMessages Cambios en los mensajes de chat de todos los chats de una organización donde se instala una aplicación de Teams determinada: /appCatalogs/teamsApps/{id}/installedToChats/getAllMessages |
Cuotas de suscripción permitidas: |
Canal de Teams | Cambios en los canales de todos los equipos: /teams/getAllChannels Cambios en el canal en un equipo específico: /teams/{id}/channels |
Cuotas de suscripción permitidas: |
conversationMember de Teams | Cambios en la pertenencia a un equipo específico: /teams/{id}/members Cambios en la pertenencia a todos los canales de un equipo específico: teams/{id}/channels/getAllMembers Cambios en la pertenencia a un chat específico: /chats/{id}/members Cambios en la pertenencia a todos los chats de una organización donde se instala una aplicación de Teams determinada: /appCatalogs/teamsApps/{id}/installedToChats/getAllMembers Cambios en la pertenencia a todos los chats: /teams/getAllMembers |
Cuotas de suscripción permitidas: |
Microsoft Teams onlineMeeting* | Cambios en una reunión en línea: /communications/onlineMeetings/?$filter=JoinWebUrl eq {joinWebUrl} |
|
Presencede Teams | Cambios en la presencia de un solo usuario: /communications/presences/{id} Cambios en varias presencias de usuario: /communications/presences?$filter=id in ({id},{id}...) |
|
Equipo de Teams | Cambios en cualquier equipo del inquilino: /teams Cambios en un equipo específico: /teams/{id} |
Cuotas de suscripción permitidas: |
todoTask | Cambios en todas las tareas de una lista de tareas específica: /me/todo/lists/{todoTaskListId}/tasks |
- |
user | Cambios en todos los usuarios: /users Cambios en un usuario específico: /users/{id} |
Cuotas de suscripción permitidas: No se admite para cuentas personales de Microsoft como outlook.com. No se admite para inquilinos de Azure AD B2C. Problema conocido para la suscripción changeType. |
Algunos de estos recursos admiten notificaciones enriquecidas (notificaciones con datos de recursos). Para obtener más información sobre los recursos que admiten notificaciones enriquecidas, consulte Configuración de notificaciones de cambio que incluyen datos de recursos.
Nota: cualquiera de las rutas de acceso a los recursos que empiece por
/users/{id}
también pueden aceptar/me
para hacer referencia al usuario que ha iniciado sesión.
Permissions
En general, las operaciones de suscripción requieren permiso de lectura en el recurso. Por ejemplo, para obtener notificaciones en mensajes, la aplicación necesita el permiso Mail.Read
. En el artículo sobre cómo crear suscripciones se muestran los permisos necesarios para cada tipo de recurso. En la siguiente tabla aparecen los tipos de permisos que la aplicación puede solicitar para usar webhooks con tipos de recurso concretos.
Tipo de permiso | Tipos de recursos admitidos |
---|---|
Delegado: cuenta profesional o educativa | alert, channel, contact, conversation, conversationMember, driveItem, event, group, list, message, team, todoTask, user |
Delegado: cuenta de Microsoft personal | contact, driveItem, event, list, message, todoTask |
Aplicación | alert, callRecord, channel, chatMessage, contact, conversationMember, driveItem, event, group, list, message, printer, printTaskDefinition, team, user |