Gerenciar o estado de presença usando a API do Graph

A API do Graph Microsoft permite que os aplicativos gerenciem estados de presença do usuário em várias sessões, garantindo atualizações de disponibilidade precisas e dinâmicas.

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

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 precedência a seguir é usada para indicar como os estados de sessão são agregados, com "A > B" representando que A tem precedência sobre B:

  • Estados > de nível de sessão de estado preferencial do usuário (o estado preferencial do usuário substitui os estados de nível de sessão)
  • Entre os estados em nível de sessão: DoNotDisturb > Ocupado > Disponível > Ausente

Observação: Quando a presença de um usuário é alterada no Microsoft Graph, como o cliente do Teams usa o modo de votação, leva alguns minutos para atualizar o status de presença.

Permutações de estados de presença

Estado do Teams Disponibilidade/atividade do gráfico
Disponível available/available
Disponível, ausência temporária available / outOfOffice
Ocupado busy/busy
Em uma chamada busy / inACall
Em reunião busy / inAMeeting
Em uma chamada, ausência temporária busy / inACall + OOF
Não perturbe doNotDisturb / doNotDisturb
Em Apresentação doNotDisturb / presenting
Ausente away / away
Volto logo beRightBack / beRightBack
Invisível offline / offWork
Ausência temporária outOfOffice

Observação

O método setPresence não dá suporte à configuração dos estados de presença Ausência Temporária (OOF) ou Em uma reunião diretamente. Esses estados são gerenciados automaticamente com base em eventos de calendário e configurações de caixa de correio, e a tentativa de defini-los por meio do método setPresence não tem efeito.

Para refletir "Ausência Temporária" na presença, use a API de eventos definindo a propriedade showAs de um evento oofde calendário para ou defina as configurações de resposta automática do usuário usando mailboxSettings.

O estado "Em reunião" é refletido automaticamente durante os eventos de reunião do calendário agendados e não requer atualizações manuais de presença.

Tempo limite, expiração e manter ativo

Uma sessão de presença pode expirar e expirar, portanto, o aplicativo precisa chamar a API presence: setPresence 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 pode atingir o tempo limite se houver disponibilidade Available e o tempo limite for de cinco minutos. Quando atinge o tempo limite, 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 cinco minutos com o primeiro tempo limite e, em Away/Away seguida, em mais cinco minutos com o segundo tempo limite.

Use expirationDuration para configurar a expiração de uma sessão de presença; caso contrário, a expiração padrão é de cinco minutos. Os valores válidos variam de cinco minutos a quatro horas, após os quais a sessão se torna Offline.

Domínios confiáveis para presença, visibilidade e interação entre locatários

Configure o acesso externo no centro de administração do Teams, para que somente as organizações parceiras pretendidas possam ver e agir sobre a presença dos usuários. No centro de administração do Teams (acesso externo de usuários>), permita todos os domínios ou adicione domínios específicos à lista de permissões em Reuniões e converse com organizações confiáveis do Microsoft 365. Os usuários nessas organizações confiáveis podem exibir a presença do usuário. A presença entre locatários requer confiança mútua, e o parceiro também deve permitir seu domínio. Domínios que não são confiáveis (ou estão bloqueados) não podem ver a presença ou ser capazes de iniciar interações controladas por presença. Para obter mais informações, consulte Especificar organizações confiáveis do Microsoft 365.