企业登录身份验证


企业登录(通常也称为 Facebook 登录)是一个接入点,企业主可使用您放置于网站上的按钮,将他们在您平台上的企业连接至 Facebook 或 Instagram 主页。

企业登录位于您的平台界面(通常位于您网站的内部管理员面板),可触发企业登录流程。企业主可使用此流程将其 Facebook 个人主页与他们在您网站上的营业点相关联,从而启用 Facebook Business 扩展程序 (FBE) 功能。

FBE 安装期间,连接合作伙伴与客户企业的企业代表解决方案 (OBO) 便会建立。除客户商务管理平台管理员凭证(当前方法)外,这种解决方案还允许合作伙伴使用合作伙伴商务管理平台管理员系统的用户凭证获取 FBE 系统用户访问口令。

请注意:业务应用可代替企业登录进行身份验证。请参阅相关文档以了解如何使用业务应用。

要求

您的应用可能必须先完成应用审核,才能获得以下权限

  • catalog_management — 仅在您的应用将启用目录功能时才需要。或者,如果您还想代表客户管理商家的广告,可以请求获取 ads_management 权限。
  • business_creative_management - 适用于应用是利用 Draper API 的创意应用的情况。

设置登录流程

要设置登录流程,请查看以下选项:

  • 通过网址加载企业登录 — 如果您不打算使用 JavaScript 版 Facebook SDK,我们建议您使用此选项。此选项会要求您从网站上的按钮链接到每个企业动态生成的网址。

  • 通过 Facebook SDK 加载企业登录 — Facebook SDK 可提供常用的客户端功能。我们建议更熟悉此 SDK 的开发者使用此选项,因为其提供更加标准化的方法来启动相同的流程。

通过网址加载企业登录


要通过网址触发企业登录,请在您的网站上放置一个可打开网址的按钮。

企业登录网址必须拥有以下查询参数:

字段 描述

client_id

类型:字符串

必要

Meta 应用编号。

display

类型:字符串

必要

企业登录的显示类型:popupwindowpage

redirect_uri

类型:字符串

必要

流程完成后,FBE 重定向到的重定向 URI。

response_type

类型:字符串

必要

确定重定向回应用时所包含的企业登录响应数据是否存在于网址参数或片段中。

如果需要将 access_token 附加到重定向 URI 以作为网址片段,请使用 token;或者,如果您更倾向于获取响应数据作为网址参数,则使用 code(必须使用 API 调用将其交换为访问口令)。

scope

类型:字符串

必要

需要以下权限或范围:manage_business_extension

根据您的用例情况,可能还需要 ads_managementcatalog_management

如果是广告创意应用,范围还应包含 business_creative_management

extras

类型:字符串

必要

包含有关用户在流程中将看到的具体流程和参数的信息。其中包括 setupbusiness_config。查看支持的 extra 字段

setup

类型:字符串

必要

商家的 Facebook 设置,例如他们的唯一身份识别信息 (external_business_id),或者其目录中所用的货币 (currency)。查看支持的 setup 字段

business_config

类型:字符串

必要

FBE 用于配置 FBE 工作流程的对象。查看支持的 business_config 字段

如果您的应用需要动态重定向 URI,请在企业登录流程完成后,使用状态参数将动态信息传回您的重定向 URI。

如需详细了解如何为此网址及所有必要参数设置格式,请查看 Facebook Business 扩展程序 API 对象和类型中列出的字段。

在下方示例中,extras 查询参数已正确设置格式,并指定了 business_configsetup 对象。

示例网址

https://facebook.com/dialog/oauth?
client_id=<FB_APP_ID>
&display=page
&redirect_uri="https://partner-site.com/redirectlanding"
&response_type=token
&scope=manage_business_extension
//   alternatively use catalog_management or ads_management
//   &scope=manage_business_extension,catalog_management,ads_management
&extras={
  "setup": {
    "external_business_id": "foo-123",
    "timezone": "America/Los_Angeles",
    "currency": "USD",
    "business_vertical": "APPOINTMENTS"
  },
  "business_config": {
    "business": {
      "name": "Foo Business"
    },
    "page_cta": {
      "enabled": true,
      "cta_button_text": "Book Now",
      "cta_button_url": "https://partner-site.com/foo-business",
      "below_button_text": "Powered by FBE Partner"
    },
    "page_card": {
      "enabled": true,
      "see_all_text": "See All",
      "see_all_url": "https://partner-site.com/foo-business",
      "cta_button_text": "Book"
    },
    "ig_cta": {
      "enabled": true,
      "cta_button_text": "Book Now",
      "cta_button_url": "https://partner-site.com/foo-business"
    },
    "messenger_menu": {
      "enabled": true,
      "cta_button_text": "Book Now",
      "cta_button_url": "https://partner-site.com/foo-business"
    },
    "thread_intent": {
      "enabled": true,
      "cta_button_url": "https://partner-site.com/foo-business"
    }
  },
  "repeat": false
}

如要手动构建登录流程,请在应用面板中输入重定向网址:

重定向网址是 FBE 重定向的保护机制。如果从 FBE 执行的重定向与您应用的重定向网址字段中的网域不匹配,则在流程结束时,FBE 不会重定向至此网址。

  1. 请前往应用面板并选择您的应用。
  2. 滚动到添加产品,然后在 Facebook 登录彩笺中点击设置
  3. 从左侧导航面板中选择设置
  4. 滚动到客户端 OAuth 设置,在有效 OAuth 重定向 URI 字段中输入您的重定向网址。

与正常的 Facebook 登录流程一样,流程结束时返回 access_token,以便您使用它来获取 Pixel 像素代码编号、公共主页编号和 Instagram Business 编号。



通过 Facebook SDK 加载企业登录


第 1 步:加载 JavaScript 版 Facebook SDK

您可以下载该 SDK 并将其托管在您的平台上,也可以下拉选择 Facebook 托管的 SDK。我们建议使用 Facebook 托管的 SDK。

第 2 步:将 fbAsyncInit 函数附加到 Window 对象以完成 SDK 设置。

在加载 JavaScript 版 SDK 之前,fbAsyncInit 函数需已附加至 window 对象。SDK 将调用该函数以设置正确的 window.fbAsyncInit()

此设置包含以下项目:

  • appId:Facebook 应用编号。
  • cookie:启用 Cookie 以允许服务器访问此会话。
  • xfbml:用于解析此页面上的社交插件。
  • version:用于通知 SDK 使用哪一个图谱 API 版本(编写此文档时的最新版本为 v10.0)

在加载 JavaScript 版 SDK 之前,将 fbAsyncInit 附加到 window 对象。

第 3 步:通过 FB.login() 函数(也称为“企业登录”)启动 FBE。

加载 SDK 并使用正确的信息完成初始化后,使用 SDK 加载 FB.login()。传递至 FB.login() 函数的重要参数如下:

  1. 响应回调函数
  2. scopeextras 字段的对象
字段 描述

scope

必要

需要以下权限或范围:manage_business_extensionads_managementcatalog_management

extras

必要

包含有关用户在 FBE 工作流程中看到的具体流程和参数的信息。其中包括 setupbusiness_config

setup

必要

定义商家的 Facebook 设置,例如他们的唯一身份识别信息 (external_business_id),或者其目录中所用的货币 (currency)。查看支持的 setup 字段

business_config

必要

FBE 用于配置 FBE 工作流程的对象。查看支持的 business_config 字段

详情请查看 Facebook Business 扩展程序 API 对象和类型

示例:

<script>
    window.fbAsyncInit = function() {
    //2. FB JavaScript SDK configuration and setup
        FB.init({
            appId      : '<app_id>', // FB App ID
            cookie     : true,  // enable cookies to allow the server to access the session
            xfbml      : true,  // parse social plugins on this page
            version    : 'v4.0' // uses graph api version v4.0
        });
    };

    //1. Load the JavaScript SDK asynchronously
    (function(d, s, id) {
        var js, fjs = d.getElementsByTagName(s)[0];
        if (d.getElementById(id)) return;
        js = d.createElement(s); js.id = id;
        js.src = "https://connect.facebook.net/en_US/sdk.js";
        fjs.parentNode.insertBefore(js, fjs);
    }(document, 'script', 'facebook-jssdk'));

     //3. Facebook login with JavaScript SDK
    function launchFBE() {
        FB.login(function (response) {
            if (response.authResponse) {
                // returns a User Access Token with scopes requested
                const accessToken = response.authResponse.accessToken;
                const message = {
                    'success':true,
                    'access_token':accessToken,
                };
                // store access token for later  
            } else {
              console.log('User cancelled login or did not fully authorize.');
            }
        }, {
            scope: 'catalog_management,manage_business_extension',
          // refer to the extras object table for details
            extras: {
                "setup":{
                  "external_business_id":"<external_business_id>",
                  "timezone":"America\/Los_Angeles",
                  "currency":"USD",
                  "business_vertical":"ECOMMERCE"
                },
                "business_config":{
                  "business":{
                     "name":"<business_name>"
                  },
                  "ig_cta": {
                    "enabled": true,
                    "cta_button_text": "Book Now",
                    "cta_button_url": "https://partner-site.com/foo-business"
                  }
                },
                "repeat":false
            }
        });
    }
</script>

第 4 步:创建按钮或链接以启用 FBE。

如要加载页面,请添加可调用 launchFBE() 的按钮或链接 onClick 函数:

<button onclick="launchFBE()"> Launch FBE Workflow </button>

在应用面板中输入重定向网址:

重定向网址是 FBE 重定向的保护机制。如果从 FBE 执行的重定向与您应用的重定向网址字段中的网域不匹配,则在流程结束时,FBE 不会重定向至此网址。

  1. 请前往应用面板并选择您的应用。
  2. 滚动到添加产品,然后在 Facebook 登录彩笺中点击设置
  3. 从左侧导航面板中选择设置
  4. 滚动到 OAuth 客户端设置,在有效 OAuth 重定向 URI 字段中输入您的重定向网址。

移动端

有关移动版 FBE 实施的详情,请参阅移动版文档

详细了解