Usar la API de Microsoft Graph para obtener notificaciones de cambios
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.
Precaución
Las aplicaciones existentes que usan esta característica con baseTask o baseTaskList deben actualizarse, ya que el conjunto de API de tareas pendientes basado en estos recursos está en desuso a partir del 31 de mayo de 2022. Ese conjunto de API dejará de devolver datos el 31 de agosto de 2022. Use el conjunto de API basado en todoTask.
La API REST de Microsoft Graph puede entregar notificaciones de cambios a los clientes a través de varios puntos de conexión, incluidos webhooks, Event Hubs y Event Grid. Para obtener información sobre cómo suscribirse y recibir notificaciones para la aplicación, consulte Configuración de notificaciones para cambios en los datos de usuario.
Una aplicación puede suscribirse a los cambios en los recursos de Microsoft Graph enumerados en la tabla.
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 el trabajo o la escuela | 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. NOTA: La creación y eliminación temporal de grupos también desencadenan changeType updated . |
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} |
Para obtener más información, consulte alertas de API para seguridad. |
Aprobaciones de Teams | Cambios en todas las aprobaciones de un inquilino: /solutions/approval/approvalItems |
Cuotas de suscripción permitidas: |
callRecord de Teams | Cambios en todos los registros de llamadas: /communications/callRecords Cambios en los registros de llamada filtrados: /communications/callRecords?$filter={parameters} |
Para obtener más información, vea Cambiar notificaciones para registros de llamadas. Cuotas de suscripción permitidas: NOTA: La creación de registros de llamadas también desencadena changeType updated . |
Llamada de TeamsRegistro | Todas las grabaciones de una organización: communications/onlineMeetings/getAllRecordings Todas las grabaciones de una reunión específica: communications/onlineMeetings/{onlineMeetingId}/recordings Una grabación de llamadas que está disponible en una reunión organizada por un usuario específico: users/{id}/onlineMeetings/getAllRecordings Grabación de llamadas que está disponible en una reunión en la que se instala una aplicación de Teams determinada: appCatalogs/teamsApps/{id}/installedToOnlineMeetings/getAllRecordings * |
Cuotas de suscripción permitidas: |
Llamada de TeamsTranscript | Todas las transcripciones de una organización: communications/onlineMeetings/getAllTranscripts Todas las transcripciones de una reunión específica: communications/onlineMeetings/{onlineMeetingId}/transcripts Transcripción de llamadas que está disponible en una reunión organizada por un usuario específico: users/{id}/onlineMeetings/getAllTranscripts Transcripción de llamadas que está disponible en una reunión en la que se instala una aplicación de Teams determinada: appCatalogs/teamsApps/{id}/installedToOnlineMeetings/getAllTrancripts * |
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 un chat específico con el parámetro de consulta notifyOnUserSpecificProperties : /chats/{id}?notifyOnUserSpecificProperties={Boolean} Cambios en todos los chats de una organización donde está instalada una aplicación de Teams determinada: /appCatalogs/teamsApps/{id}/installedToChats Cambios en todos los chats de los que forma parte un usuario determinado: /users/{id}/chats Cambios en todos los chats de los que forma parte un usuario determinado con el parámetro de consulta notifyOnUserSpecificProperties : /users/{id}/chats?notifyOnUserSpecificProperties={Boolean} |
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: /chats/getAllMembers |
Cuotas de suscripción permitidas: |
Microsoft Teams onlineMeeting* | Cambios en una reunión en línea: /communications/onlineMeetings(joinWebUrl='{encodedJoinWebUrl}')/meetingCallEvents |
No admite el uso $select de para devolver solo las propiedades seleccionadas. La notificación enriquecida consta de todas las propiedades de la instancia modificada. Una suscripción permitida por aplicación por reunión en línea. Para obtener más información, consulte Obtención de notificaciones de cambio para las actualizaciones de eventos de llamadas a reuniones de Microsoft Teams. |
Presencede Teams | Cambios en la presencia de un solo usuario: /communications/presences/{id} Cambios en la presencia de varios usuarios: /communications/presences?$filter=id in ({id},{id}...) |
La suscripción para la presencia de varios usuarios está limitada a 650 usuarios distintos. No admite el uso $select de para devolver solo las propiedades seleccionadas. La notificación enriquecida consta de todas las propiedades de la instancia modificada. Una suscripción permitida por aplicación por usuario delegado. Para obtener más información, consulte Obtención de notificaciones de cambios para las actualizaciones de presencia en Microsoft Teams. |
Equipo de Teams | Cambios en cualquier equipo del inquilino: /teams Cambios en un equipo específico: /teams/{id} |
Cuotas de suscripción permitidas: |
Oferta de turnos de TeamsMayúsRequest | Cambios en cualquier solicitud de turno de oferta en un equipo: /teams/{id}/schedule/offerShiftRequests |
Cuotas de suscripción permitidas: |
Turnos de Teams openShiftChangeRequest | Cambios en cualquier solicitud de turno abierta en un equipo: /teams/{id}/schedule/openShiftChangeRequests |
Cuotas de suscripción permitidas: |
Turnos de Turnos de Teams | Cambios en cualquier turno de un equipo: /teams/{id}/schedule/shifts |
Cuotas de suscripción permitidas: |
Intercambio de turnos de TeamsShiftsChangeRequest | Cambios en cualquier solicitud de cambio de turno en un equipo: /teams/{id}/schedule/swapShiftsChangeRequests |
Cuotas de suscripción permitidas: |
Teams Desplaza timeOffRequest | Cambios en cualquier solicitud de tiempo de descuento en un equipo: /teams/{id}/schedule/timeOffRequests |
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. NOTA: La creación y eliminación temporal de usuarios también desencadenan changeType updated . |
Nota:
Muchos recursos tienen límites o cuotas sobre cuántas suscripciones se pueden realizar en ese recurso. Cuando se supera ese 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.
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, callRecording, callTranscript, channel, chat, chatMessage (preview), contact, conversation, conversationMember, driveItem, event, group, list, message, offerShiftRequest, openShiftChangeRequest, presence, shift, swapShiftsChangeRequest, team, timeOffRequest, todoTask, user, baseTask (en desuso) |
Delegado: cuenta de Microsoft personal | contact, driveItem, event, list, message, todoTask, baseTask (en desuso) |
Aplicación | alert, callRecord, approvals, callRecording, callTranscript, channel, chat, chatMessage, contact, conversationMember, driveItem, event, group, list, message, offerShiftRequest, onlineMeeting, openShiftChangeRequest, printer, printTaskDefinition, shift, swapShiftsChangeRequest, team, timeOffRequest, user |