企业版 Facebook 登录

对于需要获取业务客户资产访问权限的技术代理和业务应用开发者来说,企业版 Facebook 登录是执行身份验证和授权的首选解决方案。企业版 Facebook 登录是 Facebook 登录的替代方案。如果您既不是技术代理,也并非要构建供其他企业使用的业务应用,请改用 Facebook 登录作为您的身份验证解决方案。

优势

与 Facebook 登录相比,企业版 Facebook 登录支持指定应用所需的访问口令类型、资产类型和权限,并将其保存为设置(配置)。然后,您可以业务客户展示该设置,以便客户完成流程并向您的应用授予访问其业务资产的权限。通过企业版 Facebook 登录,企业便无法向您授予业务应用通常不需要的某些类别信息的权限。企业版 Facebook 登录允许您根据应用的需要,在不同访问口令之间进行选择。

大多数可以访问用户数据的应用都必须经过长期审核。不过,如果一个应用只需要公司权限/功能,您就可能符合资格安装企业版 Facebook 登录,这样可以略过应用通过长期审核的要求。

支持的权限

您可以向业务客户请求获取以下权限。请注意,与 Facebook 登录不同,企业版 Facebook 登录要求您的业务客户必须授予您在配置中指定的所有权限

系统会自动为所有应用授予 emailpublic_profile 权限。但是,这两项权限必须与至少一个每次应用安装支持的其他权限搭配使用。

系统会自动向所有应用授予 public_profile 权限,但除非应用用户授予了至少一项受支持的其他权限(email 除外),否则 scope 参数中不会返回该权限。

可用权限用户访问口令业务集成工具系统用户访问口令

ads_management

ads_read

business_management

catalog_management

commerce_account_manage_orders

commerce_account_read_orders

commerce_account_read_reports

commerce_account_read_settings

commerce_manage_accounts

email *

不适用

instagram_basic

instagram_content_publish

instagram_manage_comments

instagram_manage_insights

instagram_manage_messages

instagram_shopping_tag_products

leads_retrieval

manage_fundraisers

pages_manage_cta

page_events

pages_manage_ads

pages_manage_engagement

pages_manage_instant_articles

pages_manage_metadata

pages_manage_posts

pages_messaging

pages_read_engagement

pages_read_user_content

pages_show_list

private_computation_access

public_profile *

不适用

publish_video

read_insights

read_audience_network_insights

whatsapp_business_management

whatsapp_business_messaging

支持的访问口令

您可以使用企业版 Facebook 登录来获取业务集成工具系统用户访问口令或用户访问口令。请注意,切换为企业版 Facebook 登录后,您当前的访问口令不会受到影响。

业务集成工具系统用户访问口令

业务集成工具用户访问口令由企业版 Facebook 登录生成,如果您的应用对业务客户的广告对象或公共主页执行程序化的自动化操作,而不必依赖应用用户的输入,也无需在未来某一天重新进行身份验证,则应使用业务集成工具用户访问口令。例如:

  • 每小时自动调用服务器到服务器转化 API
  • 以公共主页身份发送自动回复。
  • 持续自动更新商品目录库存。
  • 自动检索广告成效分析。

如需从业务客户处获取业务集成工具用户访问口令:

  • 您的应用不能从移动界面(即 Android、iOS 等)请求登录。
  • 完成企业版 Facebook 登录流程的业务客户必须拥有或愿意创建一个 Meta 业务账户
  • 您的应用必须与一个由您完全控制的 Meta 业务账户相关联。该账户必须与您业务客户拥有的 Meta 业务账户不同
  • 当最终用户完成应用安装时,系统将创建或更新业务集成工具系统用户访问口令并将其发送给您

如要测试业务集成工具系统用户访问口令流程,测试人员必须在应用中拥有身份。

普通系统用户业务集成工具系统用户

代表

代表对商务管理平台拥有或管理的资产发起 API 调用的服务器或软件。

作为技术代理集成工具基础设施的一部分,由客户公司通过技术代理的应用安装初始化。

访问权限

只有同一家公司的业务用户可以访问。

只有技术代理可以访问。

口令失效

不适用。

无法通过商务管理平台中的“系统用户”选项卡使访问口令失效。相反,业务客户必须前往“商务管理平台”>“业务设置”>“集成”>“关联应用”选项卡,然后点击“移除应用”按钮来卸载应用,如此便可以使口令失效。

细化业务集成工具系统用户访问口令

某些技术代理(通常是较大的组织)可能需要针对不同用途或部门使用不同的访问权限设置,而非每个客户企业使用一个业务集成工具系统用户访问口令。在这种情况下,他们可以为每个客户企业提供多个精细业务集成工具系统用户访问口令,从而提升运营的可扩展性或安全性。

  • 精细访问口令仍然仅适用于客户企业的特定业务,不支持在不同客户企业之间共享和访问。
  • 精细访问口令的范围和资产清单应该是原始业务集成工具系统用户访问口令的子集。
  • 如果口令泄露,只会影响特定的客户企业,而不是所有客户企业的全部业务账户。这有助于隔绝潜在的安全事件并消除业务账户和/或客户企业之间的相互依赖关系。

业务集成工具系统用户访问口令管理 API

此端点允许开发者通过以下方式管理其现有系统用户访问口令:

  • 根据现有业务集成工具系统用户访问口令生成更精细的系统用户访问口令
  • 获取现有业务集成工具系统用户访问口令(原始口令或更精细的口令)
参数:
对象描述

Client business id

整数

必要。

如果最终用户通过企业版 Facebook 登录流程安装应用,系统最终会生成系统用户访问口令,该口令将在客户选定的企业范围内。Client business id 是其中一个企业的编号

Appsecret_proof

字符串

必要。

由于这是一个口令管理 API,我们需要 Appsecret_proof(您访问口令的 sha256 哈希值),以确保来自服务器的调用得到更好的安全保护。请点击此处,查看更多详细信息。

Access_token

字符串

必要。

Access_token 需要 manage_business 权限。

system_user_id

整数

可选。

system_user_id 是访问口令中涉及的系统用户的编号。

fetch_only

布尔值

可选。

fetch_only 是一个标记,可用于获取现有口令并指示此操作为只读

asset

整数

可选。

如果您想要生成更精细的口令,可以设置 asset 编号清单,并以逗号分隔不同编号。资产清单必须是原始访问口令资产的子集。

scope

布尔值

可选。

如果您想要生成更精细的口令,可以设置 scope 编号清单,并以逗号分隔不同编号。资产清单必须是原始访问口令范围的子集。

set_token_expires_in_60_days

布尔值

可选。

如果您想生成新口令,可以使口令在 60 天后过期

请求示例
curl -i -X POST \ 
  'https://graph.intern.facebook.com/v17.0/2738613836382965/system_user_access_tokens?appsecret_proof=<app_secret_proof_sanitized>&
access_token=<access token sanitized>&   
system_user_id={system_user_id}&
fetch_only=true'
响应示例
{
  "access_token": "{access_token}" 
}

用户访问口令

如果您的应用是根据用户的输入信息来实时采取行动,应使用用户访问口令。例如,如果您的应用需要用户输入文本并点击某个按钮,才能将内容发布到他们的公共主页,应使用用户访问口令。如果您需要一个要求具有 Meta 业务账户管理员权限的 API,也应使用用户访问口令。

对比情况

系统用户访问口令用户访问口令

账户关联

与您业务客户的业务账户(而非特定用户)关联。在您业务客户的管理员小组中,任何管理员均可向您的应用授予系统用户访问口令。

与您应用用户的个人账户关联。

OAuth 授予类型

仅限授权码

默认隐式。主要用于基于用户代理的客户端,例如网页浏览器和移动应用。

过期和刷新

对于普通离线服务器到服务器通信,默认为永不过期

对于网页浏览器等在线活动,为短期口令。

访问权限的指定

访问权限在授权时显式授予。您的应用仅能访问由业务客户在完成企业版 Facebook 登录流程时指定的资产。

访问权限是从您应用用户的当前账户访问权限继承而来;您可以访问该应用用户当前可访问的相同业务资产。

客户使访问口令失效

您的业务客户可以使业务集成工具系统用户访问口令失效,方法如下:前往商务管理平台 > 设置 > 业务设置 > 集成 > 已关联应用,然后移除您的应用。

对于用户访问口令,您的业务客户可以移除应用,方法如下:前往 Facebook,然后前往设置和隐私 > 设置 > 安全和登录 > 业务集成工具,然后移除您的应用。

应用安装工具或登录流程体验

用户访问口令登录流程业务集成工具用户访问口令登录流程
发生错误
播放视频时出错
发生错误
播放视频时出错

立即开始

如要测试企业版 Facebook 登录,您需要创建一个“业务”类型的测试应用,系统会为此类应用自动安装企业版 Facebook 登录。

创建配置

“配置”是对应用需要从业务客户处获取的口令类型、业务资产和权限的分组。当用户安装您的应用时,该分组将在身份验证和授权流程中向用户显示。您可以根据应用需求创建多个配置,并向不同用户组显示。如要创建配置,请完成以下操作:

  1. 应用面板 中加载您的应用
  2. 添加产品企业版 Facebook 登录
  3. 点击配置
  4. 点击+ 创建配置
  5. 为配置命名
  6. 选择希望从业务客户处请求获得的访问口令类型
  7. 如果您选择系统用户访问口令,接着请选择应用需要访问的资产
  8. 选择应用需要的权限
  9. 点击创建

在您创建配置后,系统将生成一个配置编号,您可以将此编号与我们的 SDK 搭配使用(或手动使用)。

业务集成工具系统用户访问口令的应用面板配置:

发生错误
播放视频时出错

创建 WhatsApp 嵌入式注册配置

WhatApp 嵌入式注册仅面向商务解决方案提供商 (BSP) 开放。

  1. 应用面板 中加载您的应用
  2. 添加产品企业版 Facebook 登录
  3. 点击配置
  4. 点击+ 创建配置
  5. 为配置命名
  6. 选择 WhatsApp 嵌入式注册,您可借此为应用启用 WhatsApp 嵌入式注册。对于 WhatsApp 嵌入式注册,目前仅支持使用系统用户访问口令
  7. 选择口令过期时间。我们推荐选择 60 天。这有助于最大限度降低口令泄露的风险,并增强系统的安全性。
  8. 选择应用需要访问的资产。仅当您在上一步中选择“系统用户访问口令”时,此步骤才可用,并且无法取消选择 WhatsApp 帐号
  9. 选择应用需要的以下权限:whatsapp_business_managementwhatsapp_business_messaging
  10. 点击创建

创建 Instagram 配置

该流程仅针对 Instagram 图谱 API 使用情况进行优化。

  1. 应用面板 中加载您的应用
  2. 添加产品企业版 Facebook 登录
  3. 点击配置
  4. 点击+ 创建配置
  5. 为配置命名
  6. 选择 Instagram 图谱 API,您可借此为应用启用 [Instagram 特定登录流程] (https://developers.facebook.com/docs/instagram/business-login-for-instagram/)。仅支持使用用户访问口令
  7. 为您的应用选择以下权限
  8. 点击创建

调用登录对话框

如需调用“企业版 Facebook 登录”登录对话框,您可以使用我们的 SDK,也可以手动构建登录流程。

使用我们的 SDK 调用

您可以使用我们的任意 SDK 调用该登录对话框,方法是用您的配置编号和访问口令所需的 OAuth 授权类型替换应用所需的范围(权限)列表。

如果不熟悉我们的 SDK,建议先安装 JavaScript SDK,让该 SDK 与消费者版 Facebook 登录产品一起运行,然后再继续,因为以下示例引用了该 SDK。

业务集成工具系统用户访问口令配置

以下是 JavaScript SDK FB.login() 方法的一个示例,已改为使用系统用户访问口令的配置。请注意,config_id 已取代 scope(不应使用后者);response_type 已设置为 code,因为 SUAT 配置所需的授予类型为授权码;override_default_response_type 必须设置为 true。设为 true 时,response_type 中传递的任何响应类型都将优先于默认类型。

FB.login(
  function(response) [
    console.log(response);
  ],
  [
    config_id: '<CONFIG_ID>',
    response_type: 'code',
    override_default_response_type: true
  ]
);

当用户完成登录对话框流程时,我们会将用户重定向到您的重定向网址,并在其中加入一个代码。然后,您必须对我们的服务器执行服务器到服务器的调用,以将此代码转换为访问口令。

GET https://graph.facebook.com/v19.0/oauth/access_token?
  client_id=<APP_ID>
  &client_secret=<APP_SECRET>
  &code=<CODE>

有关此步骤详情,请参阅将代码转换为访问口令

用户访问口令配置

以下是 JavaScript SDK FB.login() 方法的一个示例,已改为使用用户访问口令的配置。请注意,config_id 已取代 scope(尽管 scope 仍可以包含在内,但不建议使用)。

FB.login(
  function(response) {
    console.log(response);
  },
  {
    config_id: '<CONFIG_ID>' // configuration ID goes here
  }
);

以下是 JavaScript SDK login 按钮的一个示例,已改为使用用户访问口令的配置:

<fb:login-button config_id="<CONFIG_ID>" onlogin="checkLoginState();"></fb:login-button>

手动调用

如需了解手动调用该登录对话框的方法,请参阅手动构建登录流程调用登录对话框并设置重定向网址时,请加入您的配置编号,将其作为一个可选参数(尽管仍可以加入 scope,但不建议使用此参数)。

config_id=<CONFIG_ID>

启用企业版 Facebook 登录

建议您在切换为企业版 Facebook 登录之前,先测试并了解可能遇到的问题

企业版 Facebook 登录可供所有新建的“业务”类应用使用。符合条件的现有“业务”类应用“无类型”应用要么已自动切换到企业版 Facebook 登录,要么可以启用企业版 Facebook 登录。

如果您的应用符合切换为使用企业版 Facebook 登录的条件,通过执行以下步骤,您应该可看到一个启用横幅广告:

  1. 前往您应用的应用面板
  2. 前往或添加“Facebook 登录”产品
  3. 点击“设置”选项卡或“快速启动”选项卡

要切换为使用企业版 Facebook 登录,需要点击横幅广告中的“启用”按钮。与此应用关联的测试版应用也将自动启用该产品。

切换后,您的应用类型将位于“业务”类型下。如果您的应用未按预期方式运行,则每个应用都可以在切换后 30 天内切换回 Facebook 登录,并且只能切回最多 3 次。请注意,如果通过配置编号调用企业版 Facebook 登录的登录对话框,并且您决定切换回 Facebook 登录,则登录对话框可能会加载失败,因为 Facebook 登录不支持“config_id”参数,您需要将“config_id”参数替换为“scope”参数。

疑难解决

应用安装工具可能会因以下原因收到错误消息:

  • 配置编号无效
  • 移动设备当前不支持系统用户访问口令
  • 系统用户访问口令设置的 response_type 不正确

可能发生的重大变更:

  • 如果当前的应用类型为“无”,切换为企业版 Facebook 登录将导致应用类型更改为“业务”类型;并且只能访问此登录产品可用的权限功能产品
  • 如果您现有的应用安装工具只能访问 email 或 public_profile 权限,则将应用切换为企业版 Facebook 登录将导致所有这些先前安装的口令失效。
  • 如果您现有的应用安装工具可以访问企业版 Facebook 登录不支持的权限或功能,则当应用切换为企业版 Facebook 登录后,这些权限或功能将被立即撤销
  • 如果您的应用同时具有“企业版 Facebook 登录”和“Meta 业务插件”产品,Meta 业务插件体验将仅限于企业版 Facebook 登录支持的权限。

切换为 Facebook 登录

如果您的应用在切换为企业版 Facebook 登录后未按预期方式运行,您可以卸载该产品,方法如下:前往应用面板 > 企业版 Facebook 登录 > 设置,然后点击切换为 Facebook 登录链接以切换回 Facebook 登录。您将看到一份调查,该调查可帮助我们改进企业版 Facebook 登录配置体验。每个应用都可以在切换后 30 天内切换回 Facebook 登录,并且只能切回最多 3 次

常见问题

为什么我的应用没有资格使用企业版 Facebook 登录?

企业版 Facebook 登录只能支持某些权限和功能。如果应用申请的权限或功能不受企业版 Facebook 登录支持,则该应用就不符合资格。请注意,emailpublic_profile 权限必须与至少一个其他受支持的权限搭配使用。

可以采取哪些步骤让应用获得使用资格?

如果应用没有使用资格,您可以新建自动提供企业版 Facebook 登录的业务类应用,并通过应用审核请求支持的业务权限。

安装企业版 Facebook 登录时,我需要请求哪些权限?

仅需请求应用功能所需的最低权限。告知用户您需要每项权限和功能的原因。请注意,每个应用安装时,emailpublic_profile 权限都必须与至少一个其他受支持的权限搭配使用。您可以创建一个配置来查看受支持的权限,并捆绑权限请求以获得更多自定义入门支持。