Webhooks

Visão geral

Os webhooks possibilitam que apps de integração personalizada se inscrevam em eventos no Workplace e recebam atualizações em tempo real. Quando houver uma alteração no Workplace, uma solicitação HTTPS POST será enviada à URL de retorno de chamada correspondente a cada app de integração personalizada que assinou o tópico de webhook em questão.

Isso deixa os apps mais eficientes, pois eles sabem exatamente quando as mudanças acontecem, sem depender de solicitações constantes ou periódicas à Graph API para receber o conteúdo mais recente.

A compatibilidade com webhooks no Workplace é fornecida pela mesma estrutura dos Webhooks para Graph API.

Como assinar tópicos de webhook

O diálogo Editar integração personalizada fornece abas para cada um dos tópicos de webhook disponíveis para os apps no Workplace.

A seção Webhooks no diálogo Editar integração personalizada

Para adicionar uma nova assinatura de webhook em um tópico, forneça uma URL de retorno de chamada e um token de verificação. Depois, selecione os campos de assinatura necessários para os recursos do app.

Só é possível assinar uma URL por tópico de webhook. No entanto, a mesma URL pode ser usada em vários tópicos.

Como processar solicitações de verificação

Quando você adiciona ou modifica uma assinatura, os servidores da Meta fazem uma solicitação GET para a URL de retorno de chamada com o objetivo de verificar a validade do servidor do retorno de chamada.

Uma string de consulta será adicionada à URL com os parâmetros a seguir:

  • hub.mode: a string subscribe é passada no parâmetro.
  • hub.challenge: uma string aleatória.
  • hub.verify_token: o valor verify_token que foi especificado na criação da assinatura.

Sempre que seu ponto de extremidade receber uma solicitação de verificação, você deverá:

  • verificar se o valor hub.verify_token corresponde à string configurada no campo Token de verificação do webhook;
  • responder com o valor hub.challenge.

Segurança de webhook

Todas as chamadas para URLs de retorno de chamada definidas pelos desenvolvedores são feitas via HTTPS. Isso garante a segurança em nível de transporte para cargas de webhook.

Para obter mais segurança, um cabeçalho HTTPX-Hub-Signature-256 é incluído em cada carga de POST. Use isso para verificar se uma carga veio de um servidor da Meta.

Para saber mais sobre esse comportamento, consulte a documentação sobre a estrutura dos webhooks.

Todas as chamadas para URLs de retorno de chamada definidas pelos desenvolvedores são feitas via HTTPS. Isso garante a segurança em nível de transporte para cargas de webhook.

Como assinar webhooks usando uma chamada de API

As chamadas de API para ler ou modificar assinaturas de webhook precisam ser feitas com um token de app, em vez do token de integração personalizada padrão. O token do app é gerado pela concatenação do ID do app, do símbolo "|" e da chave secreta do app.

Por exemplo:

DadosString

ID do app

504221332732118

Chave secreta do app

d76ab3f35f3ff5aa6ffdc8637a660d2ea7

Token do app

504221332732118|d76ab3f35f3ff5aa6ffdc8637a660d2ea7

Obter assinaturas de webhook atuais (usando o token do app)

GET graph.facebook.com
  /{app-id}/subscriptions
    &access_token={your_app_token}

Adicionar nova assinatura de webhook (usando o token do app)

POST graph.facebook.com
  /{app-id}/subscriptions
    ?object=page
    &fields=mention,messages
    &callback_url={your-url}
    &verify_token={your-verify-token}
    &access_token={your_app_token}

Solucionar problemas com assinaturas entre a página e o app

Quando os webhooks não são recebidos conforme o esperado, recomendamos verificar se a assinatura entre a página e o app foi configurada corretamente. Essa configuração deve ocorrer de maneira automática, mas pode haver falhas. Por exemplo, se a entrega de um webhook falhar por um período prolongado, a assinatura poderá ser removida. Em apps de terceiros, isso resultará em um alerta no Painel de Apps.

Para verificar essa assinatura, use uma das chamadas de API abaixo:

Obter assinatura atual entre a página e o app (usando o token da página)

GET graph.facebook.com
  /me/subscribed_apps?access_token={your_page_token}

Para recriar essa assinatura, use uma das chamadas de API abaixo:

Recriar assinatura atual entre o app e a página (usando o token da página)

POST graph.facebook.com
  /me/subscribed_apps?access_token={your_page_token}
	{"subscribed_fields": ["messages"...]}

Tópicos de webhook

No Workplace, as atividades são agrupadas em tópicos. Cada um deles tem campos vinculados a eventos em um tópico específico. Além disso, os apps podem se inscrever para receber atualizações de webhook e campos referentes a cada tópico.

No momento, o Workplace fornece webhooks para estes tópicos e grupos:

Página

Há mais informações disponíveis na documentação de referência sobre tópicos de página.

Campo de assinaturaComportamento

mention

Disparado quando uma página de integração personalizada (bot) é mencionada em um grupo.

messages

Disparado quando uma página de integração personalizada (bot) recebe uma mensagem no Work Chat.

message_deliveries

Disparado quando uma mensagem enviada por uma página de integração personalizada (bot) é entregue.

messaging_postbacks

Disparado quando um botão de postback é pressionado no Work Chat.

message_reads

Disparado quando uma mensagem de uma página de integração personalizada (bot) é lida pelo destinatário.

Grupos

Há mais informações disponíveis na documentação de referência sobre tópicos de grupos.

Campo de assinaturaComportamento

posts

Disparado quando uma publicação é adicionada, atualizada ou excluída em um grupo.

comments

Disparado quando um novo comentário é adicionado, atualizado ou excluído em uma publicação de grupo.

membership

Disparado quando os membros do grupo são alterados.

membership_requests

Disparado quando um usuário envia uma solicitação para participar do grupo.

Usuário

Há mais informações disponíveis na documentação de referência sobre tópicos de usuário.

Campo de assinaturaComportamento

status

Disparado quando um usuário publica ou edita uma atualização de status no próprio perfil. Isso inclui publicações na linha do tempo de outro usuário.

events

Disparado quando um usuário cria, aceita ou recusa um evento.

message_sends

Disparado quando um usuário envia uma mensagem no Workplace Chat.

message_unsends

Disparado quando um usuário remove uma mensagem do Workplace Chat para todas as pessoas em uma conversa.

timeline_comments

Disparado quando há um comentário na publicação da linha do tempo de um usuário.

Segurança

Para mais informações, consulte a documentação de referência sobre tópicos de segurança.

admin_activity

Eventos disparados quando um administrador é adicionado ou removido de uma comunidade do Workplace.

EventoComportamento

admin_set_to_unclaimed

Um administrador configurou o estado de uma conta como não obtida no Painel Administrativo ou via API de Gerenciamento de Contas.

admin_force_log_out

Um administrador forçou a saída de um usuário em todos os dispositivos pelo Painel Administrativo.

admin_deactivate

Um administrador desativou uma conta no Painel Administrativo ou via API de Gerenciamento de Contas.

admin_activate_account

Um administrador ativou uma conta no Painel Administrativo ou via API de Gerenciamento de Contas.

force_password_reset

Um administrador forçou a redefinição de senha de um usuário no Painel Administrativo.

admin_create_account

Um administrador criou uma conta pelo Painel Administrativo.

compromised_credentials

Eventos disparados quando suspeitamos que as senhas do Workplace de algumas contas de usuário em uma comunidade estão em risco.

EventoComportamento

found_compromised_credentials

O Workplace encontrou credenciais comprometidas.

files

Eventos disparados em atividades de arquivo no Workplace.

EventoComportamento

group_file_upload

Um usuário carregou um arquivo em um grupo.

group_file_download

Um usuário baixou um arquivo de um grupo.

file_upload_malware_found

Um arquivo carregado contém malware.

groups

Eventos disparados quando uma pessoa cria ou participa de um grupo multiempresarial (MCG, pelas iniciais em inglês) do Workplace.

EventoComportamento

mcg_join

Um usuário da comunidade entrou para um grupo multiempresarial.

mcg_create

Um usuário da comunidade criou um grupo multiempresarial.

integrations

Eventos disparados quando um administrador cria ou altera as propriedades de uma integração.

EventoComportamento

custom_integration_create

Um administrador criou uma integração personalizada.

custom_integration_edit

Um administrador editou uma integração personalizada.

custom_integration_delete

Um administrador excluiu uma integração personalizada.

custom_integration_token_reset

Um administrador gerou um novo token de acesso para uma integração personalizada.

content_app_install

Um usuário criou uma integração de conteúdo.

content_app_uninstall

Um usuário desinstalou uma integração de conteúdo.

invites

Eventos disparados quando uma pessoa entra no Workplace via autoconvite.

EventoComportamento

coworker_invite_sent

Um usuário convidou um colega de trabalho para participar da comunidade.

self_invite_sent

Um usuário solicitou um email de convite.

passwords

Eventos disparados quando uma pessoa altera a senha ou solicita a redefinição de senha.

EventoComportamento

password_change

A senha de um usuário foi alterada como resultado da recuperação de senha ou via configurações da conta.

password_reset_request

O fluxo de recuperação de senha de um usuário foi iniciado, e um código foi enviado ao endereço de email dele.

password_reset_wrong_code

Um usuário inseriu o código de recuperação de senha incorreto.

password_reset_success

O fluxo de recuperação da senha de um usuário foi concluído com sucesso.

sessions

Eventos disparados quando uma pessoa entra ou sai do Workplace.

EventoComportamento

log_in

O usuário entrou no Workplace com senha ou SSO via www ou apps para celular.

log_out

O usuário saiu do Workplace com senha ou SSO via www ou apps para celular.

Isso não inclui saída forçada pelo administrador. Veja admin_force_log_out.

two_factor

Eventos disparados quando uma pessoa habilita ou desabilita a autenticação de dois fatores.

EventoComportamento

two_factor_enable

Um usuário habilitou a autenticação de dois fatores na aba Configurações. Isso não detecta quando alguém confirma um telefone, mas indica que o recurso foi habilitado.

two_factor_disable

Um usuário desabilitou a autenticação de dois fatores na aba Configurações. Isso não detecta quando a autenticação é recusada em um telefone, mas indica que o recurso foi desabilitado.

add_two_factor_phone

Um usuário adicionou e confirmou um telefone usado para a autenticação de dois fatores.

two_factor_code_success

Um usuário inseriu um código válido de dois fatores ao entrar no site do Workplace por um computador ou dispositivo móvel.

two_factor_code_failure

Um usuário inseriu um código inválido de dois fatores ao entrar no site do Workplace por um computador ou dispositivo móvel.

two_factor_code_success_m

Um usuário inseriu um código válido de dois fatores ao entrar no app para celular do Workplace em um dispositivo iOS ou Android.

two_factor_code_failure_m

Um usuário inseriu um código inválido de dois fatores ao entrar no app para celular do Workplace em um dispositivo iOS ou Android.

reseller_events

Eventos relacionados a revendedores.

EventoComportamento

reseller_user_added

Permite que um usuário que não seja administrador em uma empresa revendedora veja o console do revendedor.

reseller_user_removed

Retira a permissão de um usuário que não seja administrador em uma empresa revendedora de ver o console do revendedor.

reseller_invite_sent

O revendedor convida outra empresa para se vincular a ele.

reseller_invite_accepted

Uma empresa aceita o convite de vínculo do revendedor.

reseller_invite_declined

Uma empresa recusa o convite de vínculo do revendedor.

Links

Para mais informações, consulte a documentação de referência sobre tópicos de links.

EventoComportamento

preview

Os metadados da solicitação do usuário para acessar links compartilhados.

collection

Os metadados de um link compartilhado no Workplace para gerar uma prévia.

Biblioteca de Conhecimento

Para mais informações, consulte a documentação sobre a categoria Biblioteca de Conhecimento da Graph API.

Campo de assinaturaComportamento

categories

Disparado quando o conteúdo da Biblioteca de Conhecimento está sendo adicionado, atualizado ou excluído, ou quando o público de leitura é atualizado.

comments

Disparado quando um novo comentário é adicionado, atualizado ou excluído na Biblioteca de Conhecimento.

quicklinks

Disparado quando o link rápido da Biblioteca de Conhecimento é adicionado, atualizado ou excluído.