对于需要获取业务客户资产访问权限的技术代理和业务应用开发者来说,企业版 Facebook 登录是执行身份验证和授权的首选解决方案。企业版 Facebook 登录是 Facebook 登录的替代方案。如果您既不是技术代理,也并非要构建供其他企业使用的业务应用,请改用 Facebook 登录作为您的身份验证解决方案。
与 Facebook 登录相比,企业版 Facebook 登录支持指定应用所需的访问口令类型、资产类型和权限,并将其保存为设置(配置)。然后,您可以业务客户展示该设置,以便客户完成流程并向您的应用授予访问其业务资产的权限。通过企业版 Facebook 登录,企业便无法向您授予业务应用通常不需要的某些类别信息的权限。企业版 Facebook 登录允许您根据应用的需要,在不同访问口令之间进行选择。
大多数可以访问用户数据的应用都必须经过长期审核。不过,如果一个应用只需要公司权限/功能,您就可能符合资格安装企业版 Facebook 登录,这样可以略过应用通过长期审核的要求。
您可以向业务客户请求获取以下权限。请注意,与 Facebook 登录不同,企业版 Facebook 登录要求您的业务客户必须授予您在配置中指定的所有权限。
系统会自动为所有应用授予 email
和 public_profile
权限。但是,这两项权限必须与至少一个每次应用安装支持的其他权限搭配使用。
系统会自动向所有应用授予 public_profile
权限,但除非应用用户授予了至少一项受支持的其他权限(email
除外),否则 scope
参数中不会返回该权限。
可用权限 | 用户访问口令 | 业务集成工具系统用户访问口令 |
---|---|---|
✓ | ✓ | |
✓ | ✓ | |
✓ | ✓ | |
✓ | ✓ | |
commerce_account_manage_orders | ✓ | ✓ |
commerce_account_read_orders | ✓ | ✓ |
commerce_account_read_reports | ✓ | ✓ |
commerce_account_read_settings | ✓ | ✓ |
commerce_manage_accounts | ✓ | ✓ |
email * | ✓ | 不适用 |
✓ | ✓ | |
instagram_content_publish | ✓ | ✓ |
✓ | ✓ | |
✓ | ✓ | |
✓ | ✓ | |
instagram_shopping_tag_products | ✓ | ✓ |
✓ | ✓ | |
manage_fundraisers | ✓ | ✓ |
✓ | ✓ | |
page_events | ✓ | ✓ |
✓ | ✓ | |
✓ | ✓ | |
✓ | ✓ | |
✓ | ✓ | |
✓ | ✓ | |
✓ | ✓ | |
✓ | ✓ | |
✓ | ✓ | |
✓ | ✓ | |
private_computation_access | ✓ | ✓ |
✓ | 不适用 | |
✓ | ✓ | |
✓ | ✓ | |
read_audience_network_insights | ✓ | ✓ |
✓ | ✓ | |
✓ | ✓ |
您可以使用企业版 Facebook 登录来获取业务集成工具系统用户访问口令或用户访问口令。请注意,切换为企业版 Facebook 登录后,您当前的访问口令不会受到影响。
业务集成工具用户访问口令由企业版 Facebook 登录生成,如果您的应用对业务客户的广告对象或公共主页执行程序化的自动化操作,而不必依赖应用用户的输入,也无需在未来某一天重新进行身份验证,则应使用业务集成工具用户访问口令。例如:
如需从业务客户处获取业务集成工具用户访问口令:
如要测试业务集成工具系统用户访问口令流程,测试人员必须在应用中拥有身份。
普通系统用户 | 业务集成工具系统用户 | |
---|---|---|
代表 | 代表对商务管理平台拥有或管理的资产发起 API 调用的服务器或软件。 | 作为技术代理集成工具基础设施的一部分,由客户公司通过技术代理的应用安装初始化。 |
访问权限 | 只有同一家公司的业务用户可以访问。 | 只有技术代理可以访问。 |
口令失效 | 不适用。 | 无法通过商务管理平台中的“系统用户”选项卡使访问口令失效。相反,业务客户必须前往“商务管理平台”>“业务设置”>“集成”>“关联应用”选项卡,然后点击“移除应用”按钮来卸载应用,如此便可以使口令失效。 |
某些技术代理(通常是较大的组织)可能需要针对不同用途或部门使用不同的访问权限设置,而非每个客户企业使用一个业务集成工具系统用户访问口令。在这种情况下,他们可以为每个客户企业提供多个精细业务集成工具系统用户访问口令,从而提升运营的可扩展性或安全性。
此端点允许开发者通过以下方式管理其现有系统用户访问口令:
对象 | 描述 |
---|---|
整数 | 必要。 如果最终用户通过企业版 Facebook 登录流程安装应用,系统最终会生成系统用户访问口令,该口令将在客户选定的企业范围内。 |
字符串 | 必要。 由于这是一个口令管理 API,我们需要 |
字符串 | 必要。
|
整数 | 可选。
|
布尔值 | 可选。
|
整数 | 可选。 如果您想要生成更精细的口令,可以设置 |
布尔值 | 可选。 如果您想要生成更精细的口令,可以设置 |
布尔值 | 可选。 如果您想生成新口令,可以使口令在 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 登录。
“配置”是对应用需要从业务客户处获取的口令类型、业务资产和权限的分组。当用户安装您的应用时,该分组将在身份验证和授权流程中向用户显示。您可以根据应用需求创建多个配置,并向不同用户组显示。如要创建配置,请完成以下操作:
在您创建配置后,系统将生成一个配置编号,您可以将此编号与我们的 SDK 搭配使用(或手动使用)。
WhatApp 嵌入式注册仅面向商务解决方案提供商 (BSP) 开放。
whatsapp_business_management
和 whatsapp_business_messaging
该流程仅针对 Instagram 图谱 API 使用情况进行优化。
如需调用“企业版 Facebook 登录”登录对话框,您可以使用我们的 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 登录,需要点击横幅广告中的“启用”按钮。与此应用关联的测试版应用也将自动启用该产品。
切换后,您的应用类型将位于“业务”类型下。如果您的应用未按预期方式运行,则每个应用都可以在切换后 30 天内切换回 Facebook 登录,并且只能切回最多 3 次。请注意,如果通过配置编号调用企业版 Facebook 登录的登录对话框,并且您决定切换回 Facebook 登录,则登录对话框可能会加载失败,因为 Facebook 登录不支持“config_id”参数,您需要将“config_id”参数替换为“scope”参数。
应用安装工具可能会因以下原因收到错误消息:
可能发生的重大变更:
如果您的应用在切换为企业版 Facebook 登录后未按预期方式运行,您可以卸载该产品,方法如下:前往应用面板 > 企业版 Facebook 登录 > 设置,然后点击切换为 Facebook 登录链接以切换回 Facebook 登录。您将看到一份调查,该调查可帮助我们改进企业版 Facebook 登录配置体验。每个应用都可以在切换后 30 天内切换回 Facebook 登录,并且只能切回最多 3 次。
企业版 Facebook 登录只能支持某些权限和功能。如果应用申请的权限或功能不受企业版 Facebook 登录支持,则该应用就不符合资格。请注意,email
和 public_profile
权限必须与至少一个其他受支持的权限搭配使用。
如果应用没有使用资格,您可以新建自动提供企业版 Facebook 登录的业务类应用,并通过应用审核请求支持的业务权限。
仅需请求应用功能所需的最低权限。告知用户您需要每项权限和功能的原因。请注意,每个应用安装时,email
和 public_profile
权限都必须与至少一个其他受支持的权限搭配使用。您可以创建一个配置来查看受支持的权限,并捆绑权限请求以获得更多自定义入门支持。