presença: setPresence

Namespace: microsoft.graph

Importante

As APIs na versão /beta no Microsoft Graph estão sujeitas a alterações. Não há suporte para o uso dessas APIs em aplicativos de produção. Para determinar se uma API está disponível na v1.0, use o seletor de versão.

De definir o status de disponibilidade e atividade em uma sessão de presença de um aplicativo para um usuário.

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 atrá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.

A seguir está a precedência de como os estados de sessão são agregados, com "A > B" representando A tendo precedência sobre B:

  • Estado preferencial do usuário > de nível de sessão (o estado preferencial do usuário substitui estados no nível da sessão)
  • Entre os estados de nível de sessão: DoNotDisturb (atualmente sem suporte para setPresence) > Ocupado > Disponível > Distância

Tempo de expiração, expiração e manter-se vivo

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

Uma sessão de presença pode ser limitada se a disponibilidade for Available e o tempo-de-tempo for de 5 minutos. Quando o tempo passa, o estado de presença desaparece em estágios. Por exemplo, se Available/Availableum aplicativo define a sessão de presença como , Available/AvailableInactive o estado será alternado para em 5 minutos com o primeiro tempo de tempo, em seguida, Away/Away em outros 5 minutos com o segundo tempo.

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.
Aplicativo 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 cadeia de caracteres A ID da sessão de presença do aplicativo.
availability cadeia de caracteres As informações de presença base.
atividade cadeia de caracteres 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, será aplicada uma expiração padrão de 5 minutos.

Importante

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

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

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.
Away Away Atualiza a sessão de presença como Distante.

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 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