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 Versão.

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

Essa API está disponível nas seguintes implantações nacionais de nuvem.

Serviço global Governo dos EUA L4 GOVERNO DOS EUA L5 (DOD) China operada pela 21Vianet

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 clientes do Teams (área de trabalho, celular e Web). Cada cliente do Teams 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:

  • Estados de nível de sessão de estado > preferidos pelo usuário (estado preferencial do usuário substitui estados no nível da sessão)
  • Entre os estados de nível de sessão: DoNotDisturb > Busy > Available > Away

Nota: Quando uma presença de usuário muda no Microsoft Graph, porque o cliente do Teams usa o modo de pesquisa, levará alguns minutos para atualizar a presença status.

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

Uma sessão de presença pode perder tempo 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 viva.

Uma sessão de presença pode perder tempo se a disponibilidade for Available e o tempo limite for de 5 minutos. Quando ele acaba, o estado de presença desaparece em estágios. Por exemplo, se um aplicativo definir a sessão de presença como Available/Available, o estado será alterado para Available/AvailableInactive 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

Escolha a permissão ou as permissões marcadas como menos privilegiadas para essa API. Use uma permissão ou permissões privilegiadas mais altas somente se o aplicativo exigir. Para obter detalhes sobre permissões delegadas e de aplicativo, consulte Tipos de permissão. Para saber mais sobre essas permissões, consulte a referência de permissões.

Tipo de permissão Permissões menos privilegiadas Permissões privilegiadas mais altas
Delegado (conta corporativa ou de estudante) Presence.ReadWrite Indisponível.
Delegado (conta pessoal da Microsoft) Sem suporte. Sem suporte.
Aplicativo 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 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 para durações.

Se não for fornecido, uma expiração padrão de 5 minutos será aplicada.

Importante

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

As combinações com suporte 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 Busy, InACall.
Ocupado InAConferenceCall Atualizações a sessão de presença como Busy, InAConferenceCall.
Longe Longe Atualizações a sessão de presença como Away.
DoNotDisturb Apresentando Atualizações a sessão de presença como DoNotDisturb, Apresentando.

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