Asignar usuarios en aplicaciones y páginas

Si quieres compartir el mismo identificador de usuario específico entre las versiones de prueba, desarrollo, almacenamiento provisional o QA de la aplicación, usa aplicaciones de prueba.

Facebook emite identificadores de usuario específicos de la aplicación para los usuarios que inicien sesión por primera vez en una instancia de una aplicación y para los usuarios que inicien sesión con el inicio de sesión limitado. En el caso de los usuarios que utilicen por primera vez un bot de Messenger, Facebook emite identificadores de usuario específicos de la página. Por definición, esto significa que el identificador de la misma persona puede ser distinto entre las aplicaciones y los bots.

Una empresa puede operar varias aplicaciones o bots de Facebook. Por ejemplo, un estudio de juegos puede hacerlo para admitir casos de uso como promoción cruzada o detección de fraudes. Este caso también se aplica a los bots que se utilizan para comunicarse con los usuarios. En estos casos, puede que sea necesario asignar el mismo identificador personal a dichas aplicaciones y bots.

Existen tres métodos para asignar el mismo usuario en distintas aplicaciones:

Para poder usar cualquiera de estos mecanismos, antes debes comunicar a Facebook que la misma entidad empresarial es la propietaria y la encargada del funcionamiento de las aplicaciones. Para ello, tienes que usar Business Manager de Facebook con el fin de:

El campo token_for_business del nodo “User”

Una vez asociada una aplicación a una cuenta de Business Manager, puedes solicitar el campo token_for_business en el nodo User mediante el identificador específico de la aplicación que obtuviste del inicio de sesión limitado o del primer inicio de sesión en una instancia de una aplicación. Esta llamada devuelve una cadena que es la misma para este usuario en todas las aplicaciones que administra la misma cuenta de Business Manager.

GET /me?fields=token_for_business

devolvería:

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

Notas de uso:

  • El usuario que se consulta debe haber iniciado sesión en esta aplicación.
  • Se puede llamar a este campo con un identificador de acceso a la aplicación o un identificador de acceso de usuario. Si se usa un identificador de acceso de usuario, la persona que se consulta debe ser la misma para la que se generó el identificador.
  • Si utilizas un identificador específico de la aplicación obtenido del inicio de sesión limitado, debes usar el identificador de tu aplicación para realizar la llamada, ya que no cuentas con un identificador de usuario válido para las llamadas a la API Graph. Ten en cuenta que las medidas de protección del inicio de sesión limitado no se admiten en este contexto.
  • Si la empresa propietaria cambia, el valor de token_for_business también cambiará.
  • Si solicitas el campo token_for_business y la aplicación no está asociada a ninguna cuenta de Business Manager, la llamada devuelve un error.
  • El valor que devuelve token_for_business es un identificador específico, no un identificador común y no se puede usar directamente con la API Graph para acceder a la información de un usuario. Debes almacenar igualmente el identificador en la base de datos y utilizarlo para llamar a la API Graph a fin de obtener la información de dicho usuario.

Para tu comodidad, el campo token_for_business está disponible en todas las versiones de la API.

La propiedad token_for_business del objeto signed_request de Canvas

Para facilitar que las aplicaciones con presencia de Canvas asignen un usuario en varias aplicaciones, si la aplicación está asociada a una cuenta de Business Manager y el usuario había iniciado sesión en la aplicación, se añadirá un campo token_for_business y se pasará a la aplicación mediante el objeto signed_request pasado a las aplicaciones de Canvas durante la carga. Por ejemplo:

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

El valor del campo token_for_business será el mismo que si se consultara directamente en el nodo User (p. ej., mediante /me?fields=token_for_business). También sigue las mismas reglas (p. ej., si la empresa propietaria cambia, el valor de token_for_business también cambiará).

Si la aplicación no está asociada a ninguna cuenta de Business Manager o el usuario no ha iniciado sesión en la aplicación, la propiedad token_for_business no estará presente en el objeto signed_request.

El perímetro ids_for_business del nodo “User”

Para obtener identificadores de empresa asignados, llama al perímetro ids_for_business en el nodo User. La respuesta es una matriz de objetos que representan aplicaciones asociadas a la misma empresa que la aplicación que realiza la llamada, en la que el usuario también ha iniciado sesión.

GET /me/ids_for_business

Ejemplo de respuesta:

{
  "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 la API devuelva datos, el usuario debe haber iniciado sesión en una o varias aplicaciones asociadas a la misma empresa que la aplicación desde la que se realiza la llamada a la API. Por ejemplo: si una persona ha iniciado sesión en tres de cinco aplicaciones asociadas con la misma empresa, la API devolverá tres objetos.

Preguntas frecuentes

¿Tengo que usar la API de asignación para empresas?

No. La API de asignación para empresas solo resulta útil para las empresas que operan varias aplicaciones de Facebook y necesitan asignar el mismo identificador del usuario entre ellas. Si tienes una aplicación principal, seguramente no necesitarás la API de asignación para empresas y, por lo tanto, no necesitas configurar ninguna empresa ni asociar tus aplicaciones con la empresa.

¿Qué es Business Manager?

Business Manager es una manera de ayudar a empresas y agencias a administrar sus páginas de Facebook, cuentas publicitarias, aplicaciones y métodos de pago desde el mismo sitio. Obtén más información sobre Business Manager.

Creo que no necesito utilizar la API de asignación para empresas, pero ¿debo asociar mis aplicaciones a una empresa de todos modos?

Si no necesitas utilizar la API de asignación para empresas, en este momento, no te recomendamos configurar una empresa. Dado que una empresa debe estar vinculada con la página de Facebook principal de la empresa, la mejor persona para configurar la empresa en Facebook es la persona que suele administrar las cuentas publicitarias de Facebook y los permisos de página para la empresa. Si ya ha configurado la empresa en Business Manager, puedes asociar las aplicaciones con dicha empresa.

¿Puedo asociar mi aplicación con varias empresas?

No. Una aplicación solo se puede asociar a una empresa a la vez.

¿Puedo transferir una aplicación a otra empresa?

Sí. En primer lugar, debes eliminar la aplicación de la empresa con la que está asociada actualmente. Puedes hacerlo desde Business Manager. Ve a la pestaña Aplicaciones desde la configuración de la empresa, selecciona la aplicación y haz clic en "Eliminar". A continuación, puedes asociar la aplicación con una empresa nueva.