對於想要整合 Meta 商業工具以建立行銷、傳訊和銷售解決方案的技術供應商而言,商家專用 Facebook 登入是廣受喜愛的驗證和授權解決方案。
商家專用 Facebook 登入可讓您根據應用程式的需求,在 Meta 應用程式主控板中建立登入體驗。您可以指定存取權杖類型、資產和應用程式所需的權限,並將其儲存為配置。在登入期間,您的應用程式用戶將會看到此配置,讓他們能夠授予您的應用程式對其商家資產的存取權。
email
和 public_profile
權限授予所有應用程式,但每個應用程式安裝都必須至少包含一個其他支援的權限。下表顯示商家專用 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 | ✓ | ✓ |
|
|
您可以使用商家專用 Facebook 登入來取得企業整合工具系統用戶存取權杖或用戶存取權杖。
如果您的應用程式會根據用戶的輸入項目即時執行操作,則應使用用戶存取權杖。例如,若您的應用程式需要用戶輸入文字及點擊按鈕才能發佈內容至粉絲專頁,則請使用用戶存取權杖。如果您要求的 API 需要商家資產管理組合的管理員權限,也應使用用戶存取權杖。
若您的應用程式會在商家客戶的資產上執行自動化程式動作,而毋需仰賴應用程式用戶輸入資料,或毋需在未來的日期重新驗證,則應使用企業整合工具系統用戶存取權杖。例如:
為了向您的商家客戶取得企業整合工具系統用戶存取權杖:
若要測試企業整合工具系統用戶存取權杖流程,測試人員必須在應用程式上擁有角色並擁有客戶商家的完整控制權。
如果您需要針對不同目的或部門使用不同的存取設定,則可以為每個客戶商家使用多個精細的企業整合工具系統用戶存取權杖來改善整合工具的可擴充性和安全性。
精細的存取權杖仍專屬於客戶商家資產管理組合,無法在不同的客戶商家之間分享及存取。其範圍和資產清單為原始企業整合工具系統用戶存取權杖的子集。
如果權杖遭洩露,為了隔離潛在的安全事件,只有該特定客戶商家會受到影響,而不至於影響所有客戶商家的所有商家資產管理組合。
當客戶商家透過商家專用 Facebook 登入安裝應用程式並產生企業整合工具系統用戶存取權杖時,該權杖將包含客戶商家編號。此編號代表客戶商家,您的應用程式將用它來進行 API 呼叫。
/<CLIENT_BUSINESS_ID>/system_user_access_tokens
端點允許您管理現有的企業整合工具系統用戶存取權杖,包括下列動作:
物件 | 說明 |
---|---|
| 必要項目。此存取權杖需要 |
| 必要項目。 |
| 選用項目。想要產生更精細的權杖時,可以設定 |
| 選用項目。此標示可讓您用來擷取現有的權杖,並指出此為唯讀操作 |
| 選用項目。想要產生更精細的權杖時,可以設定 |
| 選用項目。產生新權杖時,可設為 |
| 選用項目。存取權杖中包含的系統用戶編號。 |
採用方便閱讀的格式。
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 登入所需的步驟(如果您還沒有應用程式)。
您將會收到配置編號,在登入碼中使用此編號可叫用登入對話方塊。
若要建立 WhatApp 內嵌註冊配置,請瀏覽 WhatsApp 內嵌註冊指南。
若要建立商務式訊息轉換 API 配置,請瀏覽 行銷 API – 商務式訊息轉換 API 指南。
若要建立 Instagram 圖形 API 配置,請瀏覽 Instagram 圖形 API 文件。
使用我們其中一個 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 登入」後,您目前的存取權杖不會受到影響。此外,與此應用程式關聯的所有測試版應用程式也將切換到商家專用 Facebook 登入。
切換後,您的應用程式類型將位於「商業」類型下。如果您的應用程式運作不如預期,每個應用程式都可以在切換後 30 天內恢復為 Facebook 登入。
商家客戶可能會因以下原因產生錯誤訊息:
可能的重大變更:
email
和/或 public_profile
,將應用程式切換到商家專用 Facebook 登入將導致所有先前為這些客戶安裝的權杖失效。 config_id
參數,您必須將 config_id
參數替換為 scope
參數。深入瞭解 Meta Business 擴充功能。
僅在現有應用程式已切換到商家專用 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.