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