presence: setPresence

Espacio de nombres: microsoft.graph

Establezca el estado de la sesión de presencia de un usuario como una aplicación.

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

Sesiones de presencia

Un usuario puede tener varias sesiones de presencia porque el usuario puede estar en varios clientes de Teams (escritorio, móvil y web). Cada cliente de Teams tiene una sesión de presencia independiente y la presencia del usuario es un estado agregado de todas las sesiones subyacentes.

De forma similar, una aplicación puede tener su propia sesión de presencia para un usuario y poder actualizar el estado.

A continuación se muestra la prioridad de cómo se agregan los estados de sesión:

  • Configurado por el > usuario configurado por la aplicación (el estado configurado por el usuario invalida a otros)
  • Entre las aplicaciones configuradas: DoNotDisturb > Busy > Available > Away

Nota: Cuando cambia la presencia de un usuario en Microsoft Graph, dado que el cliente de Teams usa el modo de sondeo, el estado de presencia tardará unos minutos en actualizarse.

Tiempo de espera, expiración y mantenimiento activo

Una sesión de presencia puede agotar el tiempo de espera y expirar, por lo que la aplicación debe llamar a esta API antes del tiempo de espera para mantener el estado de la sesión; o antes de la expiración, para mantener activa la sesión.

Una sesión de presencia puede agotar el tiempo de espera si la disponibilidad es Available y el tiempo de espera es de 5 minutos. Cuando se agota el tiempo de espera, el estado de presencia se desvanece en fases. Por ejemplo, si una aplicación establece la sesión de presencia como Available/Available, el estado cambiaría a Available/AvailableInactive en 5 minutos con el primer tiempo de espera, a continuación Away/Away , en otros 5 minutos con el segundo tiempo de espera.

La expiración de una sesión de presencia se puede configurar con el expirationDuration parámetro . Cuando una sesión expira, se convierte Offlineen .

Permissions

Elija el permiso o los permisos marcados como con privilegios mínimos para esta API. Use un permiso o permisos con privilegios superiores solo si la aplicación lo requiere. Para obtener más información sobre los permisos delegados y de aplicación, consulte Tipos de permisos. Para obtener más información sobre estos permisos, consulte la referencia de permisos.

Tipo de permiso Permisos con privilegios mínimos Permisos con privilegios más altos
Delegado (cuenta profesional o educativa) Presence.ReadWrite No disponible.
Delegado (cuenta personal de Microsoft) No admitida. No admitida.
Aplicación Presence.ReadWrite.All No disponible.

Solicitud HTTP

POST /users/{userId}/presence/setPresence

Encabezados de solicitud

Nombre Descripción
Authorization {token} de portador. Obligatorio. Obtenga más información sobre la autenticación y la autorización.
Content-Type application/json. Obligatorio.

Cuerpo de la solicitud

En el cuerpo de la solicitud, proporcione un objeto JSON con los siguientes parámetros.

Parámetro Tipo Descripción
sessionId string Identificador de la sesión de presencia de la aplicación.
disponibilidad string Información de presencia base.
actividad string Información complementaria a la disponibilidad.
expirationDuration duration Expiración de la sesión de presencia de la aplicación. El valor se representa en formato ISO 8601 para las duraciones.

Si no se proporciona, se aplicará una expiración predeterminada de 5 minutos. El intervalo de duración válido es de 5 a 240 minutos (PT5M a PT4H)

Importante

Proporcione el identificador de la aplicación como sessionId en la solicitud.

Las combinaciones admitidas de availability y activity son:

disponibilidad actividad Descripción
Disponible Disponible Novedades la sesión de presencia como Disponible.
Ocupado InACall Novedades la sesión de presencia como Busy, InACall.
Ocupado InAConferenceCall Novedades la sesión de presencia como Busy, InAConferenceCall.
Lejos Lejos Novedades la sesión de presencia como Ausente.
Donotdisturb Presentando Novedades la sesión de presencia como DoNotDisturb, Presenting.

Respuesta

Si se ejecuta correctamente, este método devuelve un código de respuesta 200 OK.

Ejemplos

En la solicitud siguiente se muestra la aplicación con el identificador 22553876-f5ab-4529-bffb-cfe50aa89f87 que establece su sesión de presencia para el usuario fa8bf3dc-eca7-46b7-bad1-db199b62afc3.

Solicitud

POST https://graph.microsoft.com/v1.0/users/fa8bf3dc-eca7-46b7-bad1-db199b62afc3/presence/setPresence
Content-Type: application/json

{
  "sessionId": "22553876-f5ab-4529-bffb-cfe50aa89f87",
  "availability": "Available",
  "activity": "Available",
  "expirationDuration": "PT1H"
}

Respuesta

HTTP/1.1 200 OK