對於與 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 Graph API 設定,請瀏覽 Instagram Graph API 文件。
使用我們的其中一個 SDK(建議)觸發登入對話框,或者手動建立登入流程。
您可以使用我們任何 SDK 來觸發登入對話框,方法是用您的設定編號和存取憑證所需的 OAuth 授權類型,替換應用程式所需的範圍(權限)清單。
如果您不熟悉我們的 SDK,建議先安裝 JavaScript SDK,讓其與消費者版 Facebook 登入產品一起運行然後再繼續,如以下引用了 SDK 的範例所示。
以下是 JavaScript SDK FB.login()
方法的範例,當中已改為使用系統用戶存取憑證的設定。請注意,由於 SUAT 要求的授權類型為授權碼,config_id
已取代 scope
(不應使用後者),而且 response_type
已設定為 code
,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 login 按鈕的範例,已改用用戶存取憑證的設定:
<fb:login-button config_id="<CONFIG_ID>" onlogin="checkLoginState();"></fb:login-button>
如需了解手動觸發登入對話框的方式,請參閱手動構建登入流程。觸發登入對話框並設定重新導向網址時,請加入您的設定編號以作為選用參數(儘管 scope 仍可以包含在內,但不建議使用)。
config_id=<CONFIG_ID>
我們建議您進行測試,並在轉用商家專用 Facebook 登入前了解可能遇到的問題。
商家專用 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 登入設定體驗。我們允許每個應用程式在轉用商家專用 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.