對於需要獲取企業客戶資產存取權限的技術供應商和商業應用程式開發人員來說,商家專用 Facebook 登入是執行驗證和授權的首選解決方案,適合用來替代 Facebook 登入。如果您並非技術供應商,或者您不是在為其他企業建構商業應用程式,請改用 Facebook 登入作為您的驗證解決方案。
與 Facebook 登入相比,商家專用 Facebook 登入讓您能夠指定應用程式所需的存取憑證類型、資產類型和權限,並以組合(設定)形式儲存。然後,您可以向企業客戶展示該組合,以便對方完成流程並向您的應用程式授予其商家資產的存取權限。此方案不再允許企業授權您存取通常對商業應用程式無關緊要的部分資訊類別,但允許您視乎應用程式需要選擇不同的存取憑證。
大多數可以存取用戶資料的應用程式必須通過持續進行的審查。不過,如果該應用程式只需商業權限/功能,您可能符合資格安裝商家專用 Facebook 登入,以減少應用程式的規定來通過持續進行的審查。
您可以向企業客戶要求獲取以下權限。請注意,與 Facebook 登入不同,商家專用 Facebook 登入要求您的企業客戶授予您在設定中指定的所有權限。
所有應用程式都會自動獲得存取 email
和 public_profile
的權限。不過,這兩個權限必須與每次應用程式安裝中的至少一項其他受支援權限一起使用。
系統會將 public_profile
權限自動授予所有應用程式,但不會在 scope
參數中傳回有關權限資料,除非應用程式用戶已授予至少一種其他支援的權限(email
除外)。
可用權限 | 用戶存取憑證 | 企業整合系統用戶存取憑證 |
---|---|---|
✓ | ✓ | |
✓ | ✓ | |
✓ | ✓ | |
✓ | ✓ | |
commerce_account_manage_orders | ✓ | ✓ |
commerce_account_read_orders | ✓ | ✓ |
commerce_account_read_reports | ✓ | ✓ |
commerce_account_read_settings | ✓ | ✓ |
commerce_manage_accounts | ✓ | ✓ |
email * | ✓ | 不適用 |
✓ | ✓ | |
instagram_content_publish | ✓ | ✓ |
✓ | ✓ | |
✓ | ✓ | |
✓ | ✓ | |
instagram_shopping_tag_products | ✓ | ✓ |
✓ | ✓ | |
manage_fundraisers | ✓ | ✓ |
✓ | ✓ | |
page_events | ✓ | ✓ |
✓ | ✓ | |
✓ | ✓ | |
✓ | ✓ | |
✓ | ✓ | |
✓ | ✓ | |
✓ | ✓ | |
✓ | ✓ | |
✓ | ✓ | |
✓ | ✓ | |
private_computation_access | ✓ | ✓ |
✓ | 不適用 | |
✓ | ✓ | |
✓ | ✓ | |
read_audience_network_insights | ✓ | ✓ |
✓ | ✓ | |
✓ | ✓ |
您可以使用商家專用 Facebook 登入,獲取企業整合系統用戶存取憑證或用戶存取憑證。請注意,在轉用商家專用 Facebook 登入後,您目前的存取憑證將不受影響。
如果您的應用程式在企業客戶的廣告物件或專頁上執行程序化的自動操作,而不必依賴應用程式用戶的輸入或無需在日後重新驗證,則應使用由商家專用 Facebook 登入產生的企業整合系統用戶存取憑證。例如:
如需從企業客戶取得企業整合系統的用戶存取憑證,您必須符合下列條件:
如要測試企業整合系統的用戶存取憑證流程,測試人員必須擁有應用程式角色。
常規系統用戶 | 企業整合系統用戶 | |
---|---|---|
代表 | 代表伺服器或軟件,向您的企業管理平台擁有或管理的資產執行 API 呼叫。 | 技術供應商基礎架構的一部分,由客戶企業透過技術供應商的應用程式安裝啟動。 |
存取權限 | 只能由同一企業的商業用戶存取。 | 只能由技術供應商存取。 |
將憑證設為無效 | 不適用。 | 您無法透過企業管理平台中的系統用戶分頁,將存取憑證設為無效。企業客戶必須改為前往企業管理平台 > 企業管理平台設定 > 整合工具>「連結的應用程式」分頁,並點擊「移除應用程式」按鈕以解除安裝應用程式,從而將憑證設為無效。 |
部分技術供應商可能需要就不同用途或部門設定不同的存取權限,而不是只就每間客戶企業使用一個企業整合系統用戶存取憑證。這類機構一般為較大型的機構,其可以就每間客戶企業使用多個細項企業整合系統用戶存取憑證,以便提升營運的規模或帳戶安全。
此端點方便開發人員透過以下方式管理其現有系統用戶存取憑證:
物件 | 說明 |
---|---|
整數 | 此為必要項目。 若最終用戶透過最後會產生系統用戶存取憑證的商家專用 Facebook 登入流程來安裝應用程式,此憑證便專屬於客戶所選的企業。 |
字串 | 此為必要項目。 由於這是憑證管理 API,我們要求您提供存取憑證的 |
字串 | 此為必要項目。
|
整數 | 此為選用項目。
|
布林值 | 此為選用項目。
|
整數 | 此為選用項目。 若您想要產生更細項的憑證,可以設定一個 |
布林值 | 此為選用項目。 若您想要產生更細項的憑證,可以設定一個 |
布林值 | 此為選用項目。 如您想產生新的憑證,可以將其設為 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 登入程序。
設定集合了您的應用程式需要透過企業客戶獲取的憑證類型、商家資產和權限。當用戶安裝您的應用程式時,會在驗證和授權流程中看到此集合資料。您可以視乎自家應用程式的需求建立多個設定,並向不同用戶組別展示。如要建立設定,請完成以下操作:
建立設定後,系統會產生一個設定編號,您可將其與我們的 SDK 配合使用,也可以手動使用。
WhatsApp 內嵌註冊功能僅供商業解決方案供應商(BSP)獨家存取。
whatsapp_business_management
和 whatsapp_business_messaging
此流程是專門為使用 Instagram Graph API 而優化。
如需觸發商家專用 Facebook 登入對話框,您可以使用我們的 SDK 或者手動構建登入流程。
您可以使用我們任何 SDK 來觸發登入對話框,方法是用您的設定編號和存取憑證所需的 OAuth 授權類型,替換應用程式所需的範圍(權限)清單。
如果不熟悉我們的 SDK,建議先安裝 JavaScript SDK,讓其與消費者版 Facebook 登入產品一起運行然後再繼續,如以下引用了 SDK 的範例所示。
以下是 JavaScript SDK FB.login()
方法的範例,當中已改為使用系統用戶存取憑證的設定。請注意,由於 SUAT 要求的授權類型為授權碼,config_id
已取代 scope
(不應使用後者),而且 auth_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/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 login 按鈕的範例,已改用用戶存取憑證的設定:
<fb:login-button config_id="<CONFIG_ID>" onlogin="checkLoginState();"></fb:login-button>
如需了解手動觸發登入對話框的方式,請參閱手動構建登入流程。觸發登入對話框並設定重新導向網址時,請加入您的設定編號以作為選用參數(儘管 scope 仍可以包含在內,但不建議使用)。
config_id=<CONFIG_ID>
商家專用 Facebook 登入適用於全新建立的商業類型應用程式。現有符合資格的商業類型應用程式及「無」類型的應用程式已獲自動切換至商家專用 Facebook 登入,也可以自行選擇啟用。
如果您的應用程式合資格切換至商家專用 Facebook 登入,您應該會在完成以下步驟之後看到選用產品的橫額:
如要切換至商家專用 Facebook 登入,您需要點擊橫額中的「選擇使用」按鈕。與此應用程式連結的測試版應用程式亦將自動選擇使用此功能。
切換後,您的應用程式類型將為商業類型。如果您的應用程式未能按照預期運作,我們允許每個應用程式在轉用商家專用 Facebook 登入後的 30 天內回復至 Facebook 登入,並且最多可以回復 3 次。請注意,如果商家專用 Facebook 登入的登入對話框是透過設定編號觸發,而您決定回復至 Facebook 登入,登入對話框便可能無法載入,這是因為 Facebook 登入不支援「config_id」參數,您需要將「config_id」參數換成「scope」參數。
應用程式安裝程式可能會由於以下原因出現錯誤訊息:
可能帶來重大影響的變動:
如果您的應用程式在轉用商家專用 Facebook 登入後未能如預期運作,您可以解除安裝此產品,方法是前往應用程式管理中心 > 商家專用 Facebook 登入 > 設定,然後點擊切換成 Facebook 登入連結來回復至 Facebook 登入。您會看到一份問卷調查,該問卷調查有助我們改善商家專用 Facebook 登入設定體驗。我們允許每個應用程式在轉用商家專用 Facebook 登入後的 30 天內回復至 Facebook 登入,並且最多可以回復 3 次。
商家專用 Facebook 登入僅支援特定權限和功能。如果應用程式要求的權限和功能不受商家專用 Facebook 登入支援,便不符合資格。請注意,email
和 public_profile
權限必須與至少一項其他受支援權限一併要求。
如果您的應用程式不符合選擇使用資格,您可以建立新的商業類型應用程式;在此應用程式中,商家專用 Facebook 登入會自動供您使用,並可透過應用程式審查來要求支援的商業權限。
只需要求應用程式功能運作所需的最少權限。公開透明地向用戶說明需要各個權限和功能的原因。請注意,email
和 public_profile
權限必須與每次應用程式安裝中的至少一項其他受支援權限一併要求。您可以建立配置以查看受支援的權限,並為更多自訂啟用建立權限要求組合。