商家專用 Facebook 登入

對於需要存取商家客戶資產的技術供應商和商業應用程式開發人員而言,「商家專用 Facebook 登入」是廣受喜愛的驗證和授權解決方案,為 Facebook 登入的替代方案。若您非技術供應商,或您沒有建置商業應用程式供其他商家使用,請改用 Facebook 登入作為驗證解決方案。

優勢

相較於 Facebook 登入,商家專用 Facebook 登入可讓您指定存取權杖類型、資產類型和應用程式需要的權限,並將之儲存為一組(配置)。接著,您可將此組配置提供給商家客戶,好讓他們完成流程,並授權您的應用程式存取其商家資產。商家專用 Facebook 登入移除商家授予您存取部分類別資訊之權限的能力,這些資訊通常都不是商業應用程式所必需。您可以根據應用程式需求選擇不同的存取權杖。

大多數可存取用戶資料的應用程式都必須完成進行中審查。但是,如果應用程式只需要商家權限/功能,您就可能具備安裝商家專用 Facebook 登入的資格,這將減少應用程式必須完成進行中審查的需求。

支援的權限

您可以向您的商家客戶要求下列權限。請注意,有別於 Facebook 登入,商家專用 Facebook 登入會要求您的商家客戶授予您在配置中指定的所有權限

emailpublic_profile 權限會自動授予所有應用程式。但是,它們必須與每個應用程式安裝至少一個其他受支援的權限一起使用。

系統會自動將 public_profile 權限授予所有應用程式,但不會在 scope 參數中傳回該權限,除非應用程式用戶至少授予一個其他支援的權限(email 除外)。

可用的權限用戶存取權杖企業整合工具系統用戶存取權杖

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}" 
}

用戶存取權杖

如果您的應用程式會根據用戶的輸入項目即時執行操作,則應使用用戶存取權杖。例如,若您的應用程式需要用戶輸入文字及點擊按鈕才能發佈內容至頁面,則請使用用戶存取權杖。如果您需要的 API 需要 Meta 商業帳號的管理員權限,也應使用用戶存取權杖。

比較

系統用戶存取權杖用戶存取權杖

帳號關聯

與商家客戶的商業帳號相關聯,而非與特定用戶相關聯。可由商家客戶的管理員群組中的任何一位管理員授權您的應用程式,以便提供系統用戶存取權杖。

與應用程式用戶的個人帳號相關聯。

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_management 為必要項目,whatsapp_business_messaging 則為建議項目
  10. 點擊建立

建立 IG 配置

此流程僅針對 Instagram 圖形 API 使用進行最佳化。

  1. 應用程式主控板中載人您的應用程式
  2. 新增商家專用 Facebook 登入產品
  3. 點擊配置
  4. 點擊 + 建立配置
  5. 為配置命名
  6. 選擇「Instagram 圖形 API」,使您的應用程式進入 [Instagram 專用登入流程](https://developers.facebook.com/docs/instagram/business-login-for-instagram/)。僅用戶存取權杖可供使用
  7. 選擇應用程式需要的下列權限
  8. 點擊建立

叫用登入對話方塊

您可以使用我們的 SDK 來叫用「商家專用 Facebook 登入」登入對話方塊,或是手動建立登入流程來叫用該登入對話方塊。

使用我們的 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/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 登入按鈕範例,用於用戶存取權杖配置:

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

手動叫用

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

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 登入將導致您的應用程式類型變更為「商業」類型,且只能存取此登入產品可用的權限功能產品
  • 如果您現有的應用程式安裝程式只能存取電子郵件或 public_profile 權限,將應用程式切換到商家專用 Facebook 登入將導致所有這些先前安裝的權杖失效。
  • 如果您現有的應用程式安裝程式可以存取商家專用 Facebook 登入不支援的權限/功能,一旦應用程式切換到商家專用 Facebook 登入,這些權限/功能將立即遭撤銷
  • 如果您的應用程式同時具有商家專用 Facebook 登入和 Meta Business 擴充功能產品,Meta Business 擴充功能體驗將僅限於商家專用 Facebook 登入支援的權限。

切換到 Facebook 登入

如果您的應用程式在切換到商家專用 Facebook 登入後,運作不如預期,您可以前往應用程式主控板 > 商家專用 Facebook 登入 > 設定,然後點擊切換成 Facebook 登入,以恢復為 Facebook 登入,將其解除安裝。您會看到一份協助我們改善商家專用 Facebook 登入配置體驗的問卷調查。每個應用程式都可以在切換後 30 天內恢復為 Facebook 登入,且只能恢復最多 3 次

常見問題

為什麼我的應用程式不符合使用商家專用 Facebook 登入的資格?

商家專用 Facebook 登入僅能支援特定權限和功能。如果商家專用 Facebook 登入不支援應用程式所要求的權限或功能,該應用程式將不符合使用資格。emailpublic_profile 權限必須與至少一個其他支援的權限搭配使用。

我可以採取哪些措施讓應用程式符合加入使用的資格?

如果您的應用程式不符合加入使用的資格,可以新建一個自動提供商家專用 Facebook 登入功能的「商家類型」應用程式,並透過應用程式審查來要求支援的商家權限。

實作商家專用 Facebook 登入時,我必須要求哪些權限?

只需要求應用程式的功能所需的最少權限即可。請公開誠實地向用戶說明為什麼需要每個權限和功能。請注意,在要求 emailpublic_profile 權限時,每個應用程式安裝必須搭配至少一個其他支援的權限。您可以建立配置來查看支援的權限,並搭配您的權限要求以進行更多自訂加入。