Mapeamento de usuários em apps e Páginas

Se você quiser compartilhar o mesmo ID do usuário no escopo entre as versões de teste, desenvolvimento, preparo ou controle de qualidade do app, use os apps de teste.

O Facebook emite IDs de usuário no escopo do app para o primeiro login feito em uma instância do app e para pessoas que entram com Login Limitado. Para pessoas que usam um bot do Messenger pela primeira vez, o Facebook emite IDs de usuário no escopo da Página. Por definição, isso significa que o ID para a mesma pessoa pode ser diferente entre esses aplicativos e bots.

Uma empresa pode operar vários aplicativos ou bots do Facebook. Isso é comum em estúdios de jogos, por exemplo, para apoiar casos de uso como promoção cruzada ou detecção de fraudes ou em bots usados para se comunicar com os usuários. Nesses casos, você pode precisar mapear o ID da mesma pessoa entre esses aplicativos e bots.

Há três métodos para mapear o mesmo usuário em vários aplicativos:

Antes de usar esses mecanismos, você deve informar ao Facebook que os seus aplicativos pertencem e são operados pela mesma entidade de negócios. Para fazer isso, você precisará usar o Gerenciador de Negócios do Facebook para:

O campo token_for_business no nó do usuário

Quando o app estiver associado a um Gerenciador de Negócios, solicite o campo token_for_business no nó User usando o ID no escopo do app obtido por meio do Login Limitado ou do primeiro login a uma instância do app. Essa chamada retorna uma string, que é igual para essa pessoa em todos os apps gerenciados pelo mesmo Gerenciador de Negócios.

GET /me?fields=token_for_business

gerará:

{
  "id": "1234567890"
  "token_for_business": "weg23ro87gfewblwjef"
}

Notas de uso:

  • A pessoa consultada deve estar conectada no app.
  • Esse campo pode ser chamado com um token de acesso do aplicativo ou um token de acesso do usuário. Se você estiver usando um token de usuário, a pessoa consultada deve ser a mesma para quem o token foi gerado.
  • Se você usar um ID no escopo do app obtido a partir de um Login Limitado, use o ID do seu app para fazer a chamada porque você não tem um token de usuário válido para chamadas da Graph API. Nesse contexto, as proteções de Login Limitado não são compatíveis.
  • Se a empresa proprietária mudar, o valor de token_for_business também será alterado.
  • Se você solicitar o campo token_for_business e o app não estiver associado ao Gerenciador de Negócios, a chamada retornará um erro.
  • O valor retornado por token_for_business é um token, não um ID. Ele não poderá ser usado diretamente com a Graph API para acessar as informações de uma pessoa. Você deve continuar armazenando o ID no seu banco de dados e usá-lo para chamar a Graph API a fim de obter as informações da pessoa.

Por conveniência, o campo token_for_business está disponível em todas as versões da API.

A propriedade token_for_business no objeto do Canvas signed_request

Para que apps com presença no Canvas mapeiem mais facilmente um usuário em vários apps (se o app estiver associado a um Gerenciador de Negócios e o usuário estiver conectado no app), um campo token_for_business será adicionado e transmitido ao app pelo signed_request transmitido aos apps do Canvas no carregamento. Por exemplo:

{
  "algorithm": "HMAC-SHA256",
  "expires": 1414263600,
  "issued_at": 1414257389,
  "oauth_token": "CAAGEkq9GMZAkBAFnvvQ3M6msZBKITLa1gVZBVdnLTdJue2QeV6fMKRXn4G6fcEZB5ZAJyg3z6HdaKOJCCMJ1l9YFWmN4hq6nNnx77f9O7SYhsnPcJ6iH79xjFwqhrALgieDp7GiziMy5Y3Mol6RzHvCM5ceqQe9ZAijvrWZB5hEIwphbMQKEwZA4ZBozXP3NJgEZA3nZCMTTtvleWpxfmqIqO5XwxneCZBsZC4",
  "token_for_business": "AbwoGqummPbF3zp_",
  "user_id": "10154418713995634"
}

O valor do campo token_for_business será o mesmo se consultado diretamente no nó User (por exemplo, por meio de /me?fields=token_for_business). Ele segue as mesmas regras, ou seja, se a empresa proprietária for alterada, o valor do token_for_business também será alterado.

Se o app não estiver associado a um Gerenciador de Negócios ou o usuário não estiver conectado no app, a propriedade token_for_business não estará presente no objeto signed_request.

A borda ids_for_business no nó do usuário

Obtenha os IDs de empresas mapeados por meio de uma chamada para a borda ids_for_business no nó User. A resposta é uma matriz de objetos, cada um representando um app associado à mesma empresa do app que fez a chamada, no qual a pessoa está conectada.

GET /me/ids_for_business

Exemplo de resposta:

{
  "data": [
    {
      "id": "10153949089790582", 
      "app": {
        "name": "Business's App 1", 
        "namespace": "business_app_1", 
        "id": "647733625268125"
      }
    }, 
    {
      "id": "605665581", 
      "app": {
        "name": "Business's App 2", 
        "namespace": "business_app_2", 
        "id": "370612223054807"
      }
    }, 
    {
      "id": "10154053730190582", 
      "app": {
        "name": "Business's App 3", 
        "namespace": "business_app_3", 
        "id": "194890427204075"
      }
    }
  ]
}

Para que dados sejam retornados pela API, o usuário deve estar conectado a um ou mais apps associados à mesma empresa cujo app está fazendo a chamada de API. Exemplo: se uma pessoa estiver conectada com três a cinco apps associados à mesma empresa, a API retornará três objetos.

Perguntas frequentes

Preciso usar a API de Mapeamento de Negócios?

Não. A API de Mapeamento de Negócios é útil apenas para empresas que operam vários aplicativos do Facebook e que precisam mapear o mesmo ID de usuário entre eles. Se você tiver um aplicativo primário, provavelmente não precisará usar a API de Mapeamento de Negócios e, assim, não será necessário configurar uma empresa ou associar seus aplicativos com a empresa.

O que é o Gerenciador de Negócios?

O Gerenciador de Negócios é uma forma de ajudar empresas e agências a gerenciar suas Páginas do Facebook, contas de anúncios, aplicativos e formas de pagamento em um só lugar. Saiba mais Sobre o Gerenciador de Negócios do Facebook.

Eu acho que não preciso usar a API de Mapeamento de Negócios, mas devo associar meus aplicativos a uma empresa da mesma maneira?

Se você não precisar usar a API de Mapeamento de Negócios, não recomendamos configurar uma empresa no momento. Como uma empresa precisa estar vinculada à Página do Facebook primária da sua empresa, a pessoa mais indicada a configurar a empresa no Facebook é aquela que normalmente gerencia contas de anúncios do Facebook e permissões para Páginas da sua empresa. Se ela já configurou sua empresa no Gerenciador de Negócios, você pode associar aplicativos à empresa.

Posso associar meu app a várias empresas?

Não. Um app só pode ser associado a uma empresa por vez.

Posso transferir um aplicativo a outra empresa?

Sim. Primeiro, você deve remover o aplicativo da empresa com a qual está associado. Você pode fazer isso no Gerenciador de Negócios. Basta acessar a aba Aplicativos nas configurações da empresa, selecionar o app e clicar em "Remover". Depois, você poderá associar o aplicativo a uma nova empresa.