跨应用和公共主页映射用户

如果您想在应用的测试、开发、预发布或 QA 版本之间共用相同的范围用户编号,请使用测试版应用

Facebook 会为首次登录应用实例和通过受限登录登录的用户分配应用范围用户编号;并会为首次使用 Messenger 智能助手的用户分配公共主页范围用户编号。因此,同一用户的应用和智能助手编号或会有所不同。

一家公司可能会运营多个 Facebook 应用或智能助手;例如,很多游戏工作室都会这样做,以支持交叉推广或欺诈检测等用途,或使用智能助手来与用户沟通。在这些情况下,您可能需要映射同一用户的应用和智能助手编号。

您可以使用以下三种方法,以映射同一位用户的多个应用编号:

在使用这些机制之前,您必须告知 Facebook 您的多个应用由同一商业实体拥有和运营。为此,您需要使用 Facebook 商务管理平台执行以下操作:

用户节点的 token_for_business 字段

如果应用已经与商务管理平台相关联,您可以使用通过受限登录或在首次登录应用实例时获取的应用范围编号,在 User 节点请求获取 token_for_business 字段。此调用将会为该用户返回一个字符串,且该用户可在同一商务管理平台管理的所有应用中使用与此相同的字符串。

GET /me?fields=token_for_business

将产生:

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

用法说明:

  • 被查询的用户必须已登录此应用。
  • 您可以使用应用访问口令或用户访问口令,以调用该字段。如果使用用户口令,被查询的用户必须与所生成口令的接收用户相同。
  • 如果使用的是通过受限登录获取的应用范围编号,则必须使用您应用的应用编号执行调用,因为您没有可有效执行图谱 API 调用的用户口令。请注意,受限登录保护措施在此情景中不受支持。
  • 如果所属的企业发生变化,token_for_business 的值也会随之更改。
  • 如果您请求 token_for_business 字段,而应用并未与商务管理平台相关联,则调用会返回错误。
  • token_for_business 返回的值是口令,而非编号,因此您无法直接在图谱 API 中使用它来访问用户信息。您仍需将编号存储在您的数据库中,并使用它来调用图谱 API,以获取该用户的信息。

为方便起见,您可在所有 API 版本中使用 token_for_business 字段

全屏广告 signed_request 对象的 token_for_business 属性

为了将具有全屏广告的应用与某个用户轻松完成跨多个应用的映射,如果应用已与商务管理平台相关联,且用户已登录应用,则系统将添加 token_for_business 字段,并在加载时通过传递到全屏广告应用的 signed_request,将此字段传递到应用。例如:

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

token_for_business 字段的值与在 User 节点直接查询(如通过 /me?fields=token_for_business)所得的结果相同。此值也遵循相同的规则,即如果所属的企业发生改变,token_for_business 的值也会随之更改。

如果应用尚未与商务管理平台建立联系,或用户尚未登录应用,则 token_for_business 属性将不会显示在 signed_request 对象中。

用户节点的 ids_for_business 连线

调用 User 节点的 ids_for_business 连线,获取已映射的企业编号。您收到的响应将为对象数组,每个对象代表一个与调用应用关联至同一企业且用户已登录的应用。

GET /me/ids_for_business

响应示例:

{
  "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"
      }
    }
  ]
}

对于由 API 返回的数据,用户必须已登录一个或多个应用,且这些应用的关联企业与您执行 API 调用的应用所关联的企业相同。例如:如果与同一企业关联的应用共有 5 个,而用户已登录其中 3 个,则 API 将返回 3 个对象。

常见问题

是否需要使用企业映射 API?

不需要。企业映射 API 仅对运营多个 Facebook 应用的企业,以及需要在多个应用之间映射同一用户编号的企业有用。如果您有一个主应用,则一般无需使用企业映射 API,因而也无需设置企业或将您的应用与企业相关联。

什么是商务管理平台?

商务管理平台有助于企业和经销商一站式管理其 Facebook 公共主页、广告帐户、应用和支付方式。详细了解商务管理平台

我认为自己不需要使用企业映射 API,那么我是否需要将应用关联至企业?

如果您无需使用企业映射 API,我们建议您暂时不要设置企业。由于需将企业关联至您企业的主要 Facebook 公共主页,因此在 Facebook 设置企业的最佳人选应为您公司负责管理 Facebook 广告帐户和公共主页权限的人员。如果您已在商务管理平台中设置企业,则可以将应用关联至该企业。

我能否将应用与多个企业相关联?

不能。一个应用只能同时与一个企业关联。

我能否将应用转移到另一个企业?

能。首先,您必须移除应用与原有企业的联系。您可以在商务管理平台中完成此操作。只需前往业务设置中的应用程序选项卡,选择相关应用,然后点击“移除”即可。随后,您便可将应用关联至新企业。