presença: setPresence

Namespace: microsoft.graph

Defina o estado da sessão de presença de um usuário como um aplicativo.

Sessões de presença

Um usuário pode ter várias sessões de presença porque o usuário pode estar em vários Teams clientes (desktop, móvel e Web). Cada Teams cliente tem uma sessão de presença independente e a presença do usuário é um estado agregado de todas as sessões por trás.

Da mesma forma, um aplicativo pode ter sua própria sessão de presença para um usuário e ser capaz de atualizar o estado.

Veja a seguir a precedência de como os estados de sessão são agregados:

  • Configuração do > configurada pelo usuário (o estado configurado pelo usuário substitui outros)
  • Entre os aplicativos configurados: DoNotDisturb (atualmente sem suporte para presença definida) > Ocupado > Disponível > Ausente

Tempo limite, expiração e manter-se ativo

Uma sessão de presença pode expirar e expirar, portanto, o aplicativo precisa chamar essa API antes do tempo limite, para manter o estado da sessão; ou antes da expiração, para manter a sessão ativa.

Uma sessão de presença poderá expirar se a disponibilidade for Available e o tempo limite for de 5 minutos. Quando atinge o tempo limite, o estado de presença esmaece em estágios. Por exemplo, se Available/Availableum aplicativo definir a sessão de presença como , Available/AvailableInactive o estado será alterado para em 5 minutos com o primeiro tempo limite e, em seguida, Away/Away em mais 5 minutos com o segundo tempo limite.

A expiração de uma sessão de presença é configurável com o expirationDuration parâmetro. Quando uma sessão expira, ela se torna Offline.

Permissões

A permissão a seguir é necessária para chamar a API. Para saber mais, incluindo como escolher permissões, confira Permissões.

Tipo de permissão Permissões (da com menos para a com mais privilégios)
Delegado (conta corporativa ou de estudante) Presence.ReadWrite
Delegado (conta pessoal da Microsoft) Sem suporte.
Application Presence.ReadWrite.All

Solicitação HTTP

POST /users/{userId}/presence/setPresence

Cabeçalhos de solicitação

Nome Descrição
Autorização {token} de portador. Obrigatório.
Content-Type application/json. Obrigatório.

Corpo da solicitação

Forneça um objeto JSON com os seguintes parâmetros no corpo da solicitação.

Parâmetro Tipo Descrição
Sessionid string A ID da sessão de presença do aplicativo.
availability string As informações de presença base.
atividade string As informações complementares à disponibilidade.
expirationDuration duração A expiração da sessão de presença do aplicativo. O valor é representado no formato ISO 8601 por durações.

Se não for fornecido, uma expiração padrão de 5 minutos será aplicada. O intervalo de duração válido é de 5 a 240 minutos (PT5M a PT4H)

Importante

Forneça a ID do aplicativo como sessionId na solicitação.

Combinações com suporte de availability e activity são:

availability atividade Descrição
Disponível Disponível Atualiza a sessão de presença como Disponível.
Ocupado InACall Atualiza a sessão de presença como Ocupado, InACall.
Ocupado InAConferenceCall Atualiza a sessão de presença como Busy, InAConferenceCall.
Longe Longe Atualiza a sessão de presença como Ausente.

Resposta

Se tiver êxito, este método retornará um código de resposta 200 OK.

Exemplos

A solicitação a seguir mostra o aplicativo com a ID 22553876-f5ab-4529-bffb-cfe50aa89f87 que define sua sessão de presença para o usuário fa8bf3dc-eca7-46b7-bad1-db199b62afc3.

Solicitação

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

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

Resposta

HTTP/1.1 200 OK