這份文件已更新。
中文(香港) 的翻譯尚未完成。
英文更新時間:11月12日

商家專用 Facebook 登入

對於與 Meta 商業工具整合以建立營銷、訊息傳送和銷售解決方案的技術供應商來說,商家專用 Facebook 登入是執行驗證和授權的首選解決方案。

商家專用 Facebook 登入讓您可以根據自己應用程式的需求,在 Meta 應用程式管理中心中建立登入體驗。您可指定應用程式所需的存取憑證類型、資產和權限,並以配置形式儲存。登入期間,您的應用程式用戶會看到此配置,並可藉此向您的應用程式授予其商家資產的存取權限。

必要條件

  • 您的 Meta 應用程式必須是商業應用程式
  • 您的應用程式在登入期間要求的所有權限都必須由您的應用程式用戶授予,否則您的應用程式將不獲授予任何權限。
  • 系統會自動向所有應用程式授予 emailpublic_profile 權限,但就每個應用程式安裝而言,這些權限必須與至少一項其他支援的權限配合使用。
  • 如要為不屬於您或不由您管理的企業提供服務,您的應用程式必須獲准取得進階存取權限(透過 Meta 應用程式審查)。
  • 具有進階存取權限的應用程式需要接受持續性審查才能保留存取權。不過,使用商家專用 Facebook 登入的應用程式無需接受所有持續性合規審查,因為這些應用程式對企業權限和功能的存取權受限。

支援的權限

下表顯示了商家專用 Facebook 登入的可用權限。

可用權限用戶存取憑證企業整合系統用戶存取憑證(WhatsApp)
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_app_solutions

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

支援功能

  • 廣告管理一般存取權限
  • 商家資產用戶個人檔案存取權限
  • 真人服務人員
  • Instagram 公開內容存取
  • 直播視像 API
  • 專頁提及次數
  • 專頁公開內容存取權限
  • 專頁公開元數據存取權限

支援的存取憑證

您可以使用商家專用 Facebook 登入,獲取企業整合系統用戶存取憑證或用戶存取憑證。

用戶存取憑證

如果您的應用程式是根據用戶輸入的內容即時採取動作,就應使用用戶存取憑證。例如,如果您的應用程式需要用戶輸入文字並點擊某個按鈕,才能將內容發佈到他們的專頁,就應使用用戶存取憑證。如果您要求的 API 需要用到商家資產管理組合的管理權限,也應該使用用戶存取憑證。

企業整合系統用戶存取憑證

如果您的應用程式在企業客戶的資產上執行程序化的自動操作,而不必依賴應用程式用戶的輸入或無需在未來某一天重新驗證,則應使用企業整合系統用戶存取憑證。例如:

  • 每小時自動呼叫伺服器對伺服器轉換 API
  • 透過 Facebook 專頁或 WhatsApp 商家資產管理組合傳送自動回覆
  • 持續自動更新商品目錄庫存
  • 自動檢索廣告洞察報告

必要條件

如需從企業客戶取得企業整合系統用戶存取憑證,您必須符合下列條件:

  • 您的應用程式只能要求從網絡平台登入
  • 加入您應用程式的商家必須擁有或願意建立商家資產管理組合
  • 您的應用程式必須與您擁有完整控制權的商家資產管理組合連結。連結需獨立於由企業客戶擁有的商家資產管理組合。

如要測試企業整合系統的用戶存取憑證流程,測試人員必須擁有應用程式角色和客戶企業的完整控制權。

細項企業整合系統用戶存取憑證

如果您需要為不同用途或部門設定不同的存取權限,可以為每個客戶企業設定多個細項企業整合系統用戶存取憑證,以提高整合的可擴充性和安全性。

細項存取憑證仍然是客戶商家資產管理組合的專屬憑證,不能在不同客戶企業之間共用及存取。該憑證的使用範圍和資產清單為原本的企業整合系統用戶存取憑證之子集。

為了在憑證被盜用時避免發生潛在安全事件,只有該特定客戶企業會受到影響,並不會影響所有客戶企業的所有商家資產管理組合。

企業整合系統用戶存取憑證管理 API

如果客戶企業透過商家專用 Facebook 登入安裝應用程式,並產生企業整合系統用戶存取憑證,該憑證中會包含客戶企業編號。該編號代表了客戶企業,可供您的應用程式用作呼叫 API。

您可以使用 /<CLIENT_BUSINESS_ID>/system_user_access_tokens 端點管理現有企業整合系統用戶存取憑證。您可採取以下動作:

  • 透過現有企業整合系統用戶存取憑證,產生細項企業整合系統用戶存取憑證
  • 擷取任何現有企業整合系統用戶存取憑證
參數
物件說明

access_token字串

此為必要項目。此存取憑證需要擁有 business_management 權限

appsecret_proof字串

此為必要項目。appsecret_proof是存取憑證的 sha256 雜湊,可確保從伺服器呼叫 API 並提升安全性。

asset整數

此為選填項目。如要產生更細項的憑證,可以設定一個 asset 編號清單,並以逗號分隔。此資產清單必須是來自原本存取憑證的資產之子集。

fetch_only布林值

此為選填項目。您想用於擷取現有憑證並指明此為唯讀操作的標示。

scope布林值

此為選填項目。若您想要產生更細項的憑證,可以設定一個 scope 編號清單,並以逗號分隔。此資產清單必須是來自原本存取憑證的範圍之子集。

set_token_expires_in_60_days布林值

此為選填項目。產生新憑證時,將其設定為 true,這樣憑證便會在 60 天後過期。

system_user_id整數

此為選填項目。存取憑證中包含的系統用戶編號。

要求範例

已設定格式以便閱讀。

curl -i -X POST "https://graph.facebook.com/v21.0/<CLIENT_BUSINESS_ID>/system_user_access_tokens
    ?appsecret_proof=<APPSECRET_PROOF_HASH>
    &access_token=<ACCESS_TOKEN>
    &system_user_id=<SYSTEM_USER_ID>
    &fetch_only=true"

成功的話,應用程式就會收到 JSON 回應,其中包含後續 API 呼叫中會用到的新存取憑證。

{
  "access_token": "<NEW_ACCESS_TOKEN>" 
}

比較

企業整合系統用戶存取憑證用戶存取憑證

存取權限指定類別

授權時,存取權限為明確指定。您的應用程式只能存取由企業客戶在完成商家專用 Facebook 登入流程時指定的資產。僅適用於技術供應商。

存取權限是從您應用程式用戶的目前帳戶存取權限繼承而來;該應用程式可以存取該應用程式用戶目前能夠存取的相同商家資產。

帳戶關聯

與您企業客戶的商家資產管理組合(而非特定用戶)有所關聯。在您企業客戶的管理員群組中,任何管理員均可向您的應用程式授予系統用戶存取憑證。

與您應用程式用戶的 Facebook 個人帳戶有所關聯。

過期和重新整理

如果是普通離線伺服器對伺服器通訊,預設為永不過期

如果是網頁瀏覽器等網上活動,則為短期憑證。

OAuth 授權類型

僅限授權碼授權。

預設為隱含授權,且支援授權碼授權,以加強安全保障。主要用於用戶代理型的用戶端,例如網頁瀏覽器和流動應用程式。

代表

技術供應商整合工具基礎架構的一部分,由客戶企業透過技術供應商的應用程式安裝啟動。

代表伺服器或軟件,向由企業管理平台擁有或管理的資產執行 API 呼叫。

將憑證設為無效

您的企業客戶可以將企業整合系統用戶存取憑證設為無效,方法是前往企業管理平台 > 設定 > 企業管理平台設定 > 整合工具 > 連結的應用程式,然後移除您的應用程式。

您的企業客戶可以將用戶存取憑證設為無效,方法是前往 Facebook,然後前往設定和私隱 > 設定 > 帳戶安全和登入 > 企業整合工具,然後移除您的應用程式。

登入流程體驗

用戶存取憑證登入流程企業整合系統用戶存取憑證登入流程
發生錯誤
播放此影片時發生問題。
發生錯誤
播放此影片時發生問題。

開始設定

如果您還沒有應用程式,以下是設定商家專用 Facebook 登入所需的步驟。

建立應用程式

  1. 在 Meta 的應用程式管理中心中,建立商業應用程式
  2. 新增商家專用 Facebook 登入產品。
  3. 在左側選單中,選擇設定
  4. 您可以選擇 + 建立設定來建立配置,或者選擇透過範本建立來選擇 Meta 的其中一個預設配置。您可以建立多個設定,並向不同用戶組別展示。
  5. 為設定命名。
  6. 選擇要向企業客戶要求獲取的存取憑證類型(用戶存取憑證還是系統用戶存取憑證),以及憑證到期日。如果選擇用戶存取憑證,應用程式用戶將使用其 Facebook 個人帳戶登入。如果選擇系統用戶存取憑證,應用程式用戶將需要使用商家資產管理組合登入。僅在此設定需要繼續存取 Facebook 專頁、廣告帳戶或 Instagram 帳戶等商家資產時,這一步才是必要步驟。
  7. 選擇應用程式需要存取的所有資產。
  8. 選擇應用程式所需的權限,然後點擊建立

您會收到配置編號,以在程式碼中用來觸發登入對話框。

建立 WhatsApp Business 平台內嵌註冊設定

如要建立 WhatApp 內嵌註冊設定,請瀏覽 WhatsApp 內嵌註冊指南

建立商務式訊息轉換 API 設定

如要建立商務式訊息轉換 API 設定,請瀏覽推廣 API:商務式訊息轉換 API 指南

建立 Instagram Graph API 設定

如要建立 Instagram Graph API 設定,請瀏覽 Instagram Graph API 文件

觸發登入對話框

使用我們的其中一個 SDK(建議)觸發登入對話框,或者手動建立登入流程。

使用我們的 SDK 來觸發

您可以使用我們任何 SDK 來觸發登入對話框,方法是用您的設定編號和存取憑證所需的 OAuth 授權類型,替換應用程式所需的範圍(權限)清單。

如果您不熟悉我們的 SDK,建議先安裝 JavaScript SDK,讓其與消費者版 Facebook 登入產品一起運行然後再繼續,如以下引用了 SDK 的範例所示。

企業整合系統用戶存取憑證設定

以下是 JavaScript SDK FB.login() 方法的範例,當中已改為使用系統用戶存取憑證的設定。請注意,由於 SUAT 要求的授權類型為授權碼,config_id 已取代 scope(不應使用後者),而且 response_type 已設定為 codeoverride_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/v21.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 登入,您應該會在完成以下步驟之後看到選用產品的橫額:

  1. 在應用程式管理中心選擇您的應用程式
  2. 前往或新增 Facebook 登入產品
  3. 在左側選單中點擊設定快速入門
  4. 點擊頁面頂部的「開始使用商家專用 Facebook 登入」按鈕。

請注意,在轉用商家專用 Facebook 登入後,您目前的存取憑證將不受影響。此外,與此應用程式相關的所有測試應用程式也會轉用商家專用 Facebook 登入。

轉用後,您的應用程式類型將為商業類型。如果您的應用程式未能按照預期運作,我們允許每個應用程式在轉用商家專用 Facebook 登入後的 30 天內回復至 Facebook 登入。

解決疑難

由於以下原因,企業客戶可能會看到錯誤訊息:

  • 設定編號無效
  • 流動裝置目前不支援企業系統用戶存取憑證
  • 以錯誤的 response_type 設定企業系統用戶存取憑證

可能帶來重大影響的變動:

  • 如果您的應用程式類型目前顯示為「」,轉用商家專用 Facebook 登入會將您的應用程式類型變更為「商業」,並僅保留上述權限功能產品的存取權限。
  • 如果您向企業客戶要求獲取商家專用 Facebook 登入不支援的權限或功能,這些權限和功能將在應用程式轉用商家專用 Facebook 登入後立即撤銷
  • 如果您僅向企業客戶要求獲取 email 和/或 public_profile,轉用商家專用 Facebook 登入將導致這些客戶之前安裝的所有憑證失效。
  • 如果您的應用程式同時使用商家專用 Facebook 登入和 Meta Business 擴充功能,您所能享用的 Meta Business 擴充功能體驗將只限於商家專用 Facebook 登入支援的權限。
  • 商家資產用戶個人檔案存取權限可能影響透過我們 API 存取及管理用戶個人檔案資料的方式。
  • 請注意,如果商家專用 Facebook 登入的登入對話框是透過設定編號觸發,而您決定回復至 Facebook 登入,登入對話框便可能無法載入,這是因為 Facebook 登入不支援 config_id 參數,您需要將 config_id 參數換成 scope 參數。

進一步了解 Meta Business 擴充功能

切換回 Facebook 登入

此操作僅適用於現有應用程式轉用商家專用 Facebook 登入的情況;新建立的商業類型應用程式無法切換回 Facebook 登入。

如果您的應用程式在轉用商家專用 Facebook 登入後未能如預期運作,您可以切換回 Facebook 登入,方法是前往應用程式管理中心 > 商家專用 Facebook 登入 > 設定,然後點擊「切換成 Facebook 登入」連結。您會看到一份問卷調查,該問卷調查有助我們改善商家專用 Facebook 登入設定體驗。我們允許每個應用程式在轉用商家專用 Facebook 登入後的 30 天內回復至 Facebook 登入。

常見問題

The easiest way to add Facebook Login for Business is to create a new Business Type app, where Facebook Login for Business is automatically available, and request supported business permissions through Meta App Review. If you want to use it for an existing None type app, your app must have advanced access to at least one supported business permission.

If you are not a Tech Provider building solutions using Meta’s business APIs, Facebook Login is recommended for consumer authentication.

Only request the minimum permissions necessary for your app's functionality. Be transparent with users about why you need each permissions and features. Note that the email and public_profile permissions must be requested with at least one other supported business permission.

Yes, advanced access to the public_profile permission is required for Facebook Login for Business apps before they go live. This requirement is crucial to ensure that the app can support authorization from users who do not have an app role, commonly referred to as external users.