商家專用 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 Business 商家資產管理組合
  • 持續對商品目錄庫存執行自動化更新
  • 自動化擷取廣告洞察報告

必備條件

為了向您的商家客戶取得企業整合工具系統用戶存取權杖:

  • 您的應用程式僅能要求從網路介面登入
  • 加入應用程式的商家必須具有(或願意建立)商家資產管理組合
  • 您的應用程式必須與您擁有完整控制權的商家資產管理組合相關聯。這個帳號需要與商家客戶擁有的商家資產管理組合分開。

若要測試企業整合工具系統用戶存取權杖流程,測試人員必須在應用程式上擁有角色並擁有客戶商家的完整控制權。

精細的企業整合工具系統用戶存取權杖

如果您需要針對不同目的或部門使用不同的存取設定,則可以為每個客戶商家使用多個精細的企業整合工具系統用戶存取權杖來改善整合工具的可擴充性和安全性。

精細的存取權杖仍專屬於客戶商家資產管理組合,無法在不同的客戶商家之間分享及存取。其範圍和資產清單為原始企業整合工具系統用戶存取權杖的子集。

如果權杖遭洩露,為了隔離潛在的安全事件,只有該特定客戶商家會受到影響,而不至於影響所有客戶商家的所有商家資產管理組合。

企業整合工具系統用戶存取權杖管理 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 圖形 API 配置

若要建立 Instagram 圖形 API 配置,請瀏覽 Instagram 圖形 API 文件

叫用登入對話方塊

使用我們其中一個 SDK(建議)叫用登入對話方塊,或手動建立登入流程。

使用我們的 SDK 叫用

您可以使用我們的任何 SDK 來叫用登入對話方塊,做法是以您的配置 ID 以及存取權杖要求的 OAuth 授權類型,取代應用程式所需的範疇(權限)清單。

若您不熟悉我們的 SDK,建議先安裝 JavaScript 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/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 登入按鈕範例,用於用戶存取權杖配置:

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

建立手動登入流程

請參閱手動建立登入流程,瞭解如何手動叫用登入對話方塊。在叫用登入對話方塊並設定重新導向網址時,請包含配置編號作為選用參數(雖然還是可以包含範疇,但建議您不要使用)。

config_id=<CONFIG_ID>

切換到商家專用 Facebook 登入

建議您先進行測試,並瞭解可能遇到的問題後,再切換到商家專用 Facebook 登入。

商家專用 Facebook 登入適用於商業類型應用程式

如果應用程式符合切換到商家專用 Facebook 登入的資格,您應該可以透過下列步驟看到選擇加入橫幅:

  1. 在應用程式主控板選擇您的應用程式
  2. 前往或新增 Facebook 登入產品
  3. 點擊「設定」頁籤或「快速入門」頁籤
  4. 點擊頁面頂端的「開始使用商家專用 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 登入配置體驗的問卷調查。每個應用程式都可以在切換後 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.