Compartilhar via


presença: setPresence

Namespace: microsoft.graph

Defina o estado da sessão de presença de um utilizador como uma aplicação.

Esta API está disponível nas seguintes implementações de cloud nacionais.

Serviço global US Government L4 US Government L5 (DOD) China operada pela 21Vianet

Sessões de presença

Um utilizador pode ter múltiplas sessões de presença porque o utilizador pode estar em vários clientes do Teams (ambiente de trabalho, dispositivos móveis e Web). Cada cliente do Teams tem uma sessão de presença independente e a presença do utilizador é um estado agregado de todas as sessões atrasadas.

Da mesma forma, uma aplicação pode ter a sua própria sessão de presença para um utilizador e ser capaz de atualizar o estado.

A seguinte precedência é utilizada para a forma como os estados de sessão são agregados:

  • Configurado pelo > utilizador com a aplicação configurada (o estado configurado pelo utilizador substitui outros)
  • Entre as aplicações configuradas: DoNotDisturb > Ocupado > Disponível > Ausente

Nota: Quando a presença de um utilizador muda no Microsoft Graph, uma vez que o cliente do Teams utiliza o modo de votação, a atualização do status de presença demorará alguns minutos.

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

Uma sessão de presença pode exceder o tempo limite e expirar, pelo que a aplicação tem de chamar esta API antes do tempo limite, 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 exceder o limite de tempo se a disponibilidade for Available e o tempo limite for de 5 minutos. Quando excede o limite de tempo, o estado de presença desaparece por fases. Por exemplo, se uma aplicação definir a sessão de presença como Available/Available, o estado mudaria para Available/AvailableInactive 5 minutos com o primeiro tempo limite e, em seguida Away/Away , em mais 5 minutos com o segundo tempo limite.

Utilizado expirationDuration para configurar a expiração de uma sessão de presença; caso contrário, a expiração predefinida é de 5 minutos. Os valores válidos variam entre 5 minutos e 4 horas, após o qual a sessão se torna Offline.

Permissões

Escolha a permissão ou permissões marcadas como menos privilegiadas para esta API. Utilize uma permissão ou permissões com privilégios mais elevados apenas se a sua aplicação o exigir. Para obter detalhes sobre as permissões delegadas e de aplicação, veja Tipos de permissão. Para saber mais sobre estas permissões, veja a referência de permissões.

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

Solicitação HTTP

POST /users/{userId}/presence/setPresence

Cabeçalhos de solicitação

Nome Descrição
Autorização {token} de portador. Obrigatório. Saiba mais sobre autenticação e autorização.
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 O ID da sessão de presença da aplicação.
availability string As informações de presença de base.
atividade string As informações suplementares sobre a disponibilidade.
expirationDuration duração A expiração da sessão de presença da aplicação. O valor é representado no formato ISO 8601 durante durações.

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

Importante

Indique o ID da aplicação como sessionId no pedido.

As combinações suportadas de availability e activity são:

availability atividade Descrição
Disponível Disponível Atualizações a sessão de presença como Disponível.
Ocupado InACall Atualizações a sessão de presença como Ocupado, InACall.
Ocupado InAConferenceCall Atualizações a sessão de presença como Ocupado, InAConferenceCall.
Ausente Ausente Atualizações a sessão de presença como Ausente.
DoNotDisturb A apresentar Atualizações a sessão de presença como DoNotDisturb, Apresentação.

Resposta

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

Exemplos

O pedido seguinte mostra a aplicação com o ID 22553876-f5ab-4529-bffb-cfe50aa89f87 que define a respetiva sessão de presença para o utilizador fa8bf3dc-eca7-46b7-bad1-db199b62afc3.

Solicitação

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

Resposta

HTTP/1.1 200 OK