Skip to main content
A Account Activity API (AAA) está sendo descontinuada. Confira a X Activity API (XAA) para a entrega de atividades de usuário em tempo real daqui para frente.
Este guia orienta você na configuração da Account Activity API, no gerenciamento de assinaturas de usuários, na validação do seu webhook e no uso do recurso de replay para recuperar eventos perdidos.

1. Crie um X App

Crie um X app com uma conta de desenvolvedor aprovada no developer portal. Se estiver criando o app em nome da sua empresa, use uma conta corporativa do X.
  • Habilite “Read, Write, and Access direct messages” na aba de permissões da página do seu app.
  • Na aba “Keys and Access Tokens”, anote a Consumer Key (API Key), o Consumer Token (API Secret) e o Bearer Token do seu app.
  • Gere o Access Token e o Access Token Secret do seu app. Eles são necessários para assinar contas de usuário.
  • Consulte Obtaining Access Tokens caso não esteja familiarizado com o X Sign-in e com contextos de usuário.
  • Anote o ID numérico do seu app na página “Apps” do developer portal. Ele é obrigatório ao solicitar acesso à Account Activity API.

2. Obtenha acesso à Account Activity API

A Account Activity API está disponível nos níveis Enterprise e Pay Per Use. Envie uma solicitação de acesso pelo developer portal.

3. Registre um webhook

Para receber eventos da Account Activity, você precisa registrar um webhook com uma URL HTTPS acessível publicamente. Consulte a documentação da V2 Webhooks API para detalhes sobre como desenvolver um app consumidor de webhook, registrar um webhook, protegê-lo e lidar com os Challenge-Response Checks (CRC).
  • Garanta que seu webhook esteja configurado para lidar com requisições POST com payloads de evento codificados em JSON.
  • Obtenha o webhook_id na resposta do registro do webhook, pois ele é necessário para gerenciar as assinaturas.

4. Valide a configuração

Para validar que seu app e webhook estão configurados corretamente:
  1. Assine uma conta de usuário no seu webhook (veja Adicionando uma assinatura abaixo).
  2. Curta um Post publicado por uma das contas do X assinadas pelo seu app.
  3. Você deverá receber um payload favorite_events via requisição POST na URL do seu webhook.
Pode levar até 10 segundos para que os eventos comecem a ser entregues após adicionar uma assinatura.

Gerenciando assinaturas

Depois de ter um webhook registrado com um webhook_id válido, você pode gerenciar as assinaturas dos usuários para receber suas atividades de conta. Use os endpoints a seguir para adicionar, visualizar ou remover assinaturas.

Adicionando uma assinatura

Endpoint: POST /2/account_activity/webhooks/:webhook_id/subscriptions/allReferência da API Assina o usuário autenticado para receber eventos via o webhook especificado. Autenticação: OAuth 1.0a (é necessário o fluxo OAuth 3-legged, representando o usuário a ser assinado).
Sucesso (200 OK):
Motivos de falha:

Verificando uma assinatura

Endpoint: GET /2/account_activity/webhooks/:webhook_id/subscriptions/allReferência da API Verifica se o usuário autenticado está assinado no webhook especificado. Autenticação: OAuth 1.0a (é necessário o fluxo OAuth 3-legged).
Sucesso (200 OK):
Motivos de falha:

Removendo uma assinatura

Endpoint: DELETE /2/account_activity/webhooks/:webhook_id/subscriptions/:user_id/allReferência da API Desativa a assinatura de um ID de usuário específico, interrompendo a entrega de eventos ao webhook. Autenticação: OAuth2 App Only Bearer Token.
Sucesso (200 OK):
Motivos de falha:

Visualizando todas as assinaturas

Endpoint: GET /2/account_activity/webhooks/:webhook_id/subscriptions/all/listReferência da API Retorna uma lista com todos os IDs de usuários atualmente assinados no webhook especificado. Autenticação: OAuth2 App Only Bearer Token.
Sucesso (200 OK):
Motivos de falha:

Contagem de assinaturas

Endpoint: GET /2/account_activity/subscriptions/countReferência da API Retorna a contagem total de assinaturas ativas e o limite provisionado para a aplicação autenticada. Autenticação: OAuth2 App Only Bearer Token.
Sucesso (200 OK):
Assinaturas somente de DM não são mais suportadas. O campo subscriptions_count_direct_messages sempre será "0".

Replay

O AAAv2 oferece a funcionalidade de replay, que permite recuperar eventos passados em um intervalo de tempo especificado e reenviá-los ao seu webhook. Isso é útil para recuperar eventos perdidos devido a indisponibilidade. Endpoint: POST /2/account_activity/replay/webhooks/:webhook_id/subscriptions/allReferência da API Autenticação: OAuth2 App Only Bearer Token. Sucesso (200 OK):
Motivos de falha:

Mensagens de job concluído

Quando o seu job de replay for concluído com sucesso, o X entregará o seguinte evento de conclusão. Ao receber esse evento, o job terá terminado de rodar e outro poderá ser enviado.
Caso o seu job não seja concluído com sucesso, o X retornará a mensagem a seguir incentivando você a tentar novamente o seu job de replay. Ao receber esse evento, o job terá terminado de rodar e outro poderá ser enviado.

Observações importantes

  • Autenticação: ao assinar usuários, use a consumer key, o consumer secret, o access token e o access token secret da conta do usuário.
  • Direct Messages: todas as Direct Messages recebidas e enviadas (via POST /2/dm_conversations/with/:participant_id/messages) são entregues via webhooks para manter seu app ciente de toda a atividade de DM.
  • Duplicação de eventos:
    • Se dois usuários assinados estiverem na mesma conversa de DM, seu webhook receberá eventos duplicados (um por usuário). Use o campo for_user_id para diferenciá-los.
    • Se vários apps compartilharem a mesma URL de webhook e o mesmo usuário, os eventos serão enviados várias vezes (uma por app).
    • Seu app deve deduplicar os eventos usando o ID do evento para lidar com duplicatas ocasionais.

Apps de exemplo


Próximos passos

Introdução

Tipos de atividade, objetos de dados e exemplos de payload

Webhooks API

Registre e gerencie seus webhooks

Guia de migração

Migre do Enterprise legado para o v2

Início rápido de webhook

Configuração de CRC, segurança e registro de webhooks