對於需要存取商家客戶資產的技術供應商和商業應用程式開發人員而言,「商家專用 Facebook 登入」是廣受喜愛的驗證和授權解決方案,為 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 使用(或手動)。
WhatApp 內嵌註冊僅適用於商業解決方案供應商(BSP)。
whatsapp_business_management
為必要項目,whatsapp_business_messaging
則為建議項目 此流程僅針對 Instagram 圖形 API 使用進行最佳化。
您可以使用我們的 SDK 來叫用「商家專用 Facebook 登入」登入對話方塊,或是手動建立登入流程來叫用該登入對話方塊。
您可以使用我們的任何 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 登入,您必須點擊橫幅內的「選擇加入」按鈕。與此應用程式相關聯的測試應用程式也將自動選擇加入。
切換後,您的應用程式類型將位於「商業」類型下。如果您的應用程式運作不如預期,每個應用程式都可以在切換後 30 天內恢復為 Facebook 登入,只能恢復最多 3 次。請注意,若是透過配置編號叫用「商家專用 Facebook 登入」的登入對話方塊,且您決定恢復 Facebook 登入,登入對話方塊可能會載入失敗,因為 Facebook 登入不支援「config_id」參數,您需要將「config_id」參數替換為「scope」參數。
應用程式安裝程式可能會因以下原因產生錯誤訊息:
可能的重大變更:
如果您的應用程式在切換到商家專用 Facebook 登入後,運作不如預期,您可以前往應用程式主控板 > 商家專用 Facebook 登入 > 設定,然後點擊切換成 Facebook 登入,以恢復為 Facebook 登入,將其解除安裝。您會看到一份協助我們改善商家專用 Facebook 登入配置體驗的問卷調查。每個應用程式都可以在切換後 30 天內恢復為 Facebook 登入,且只能恢復最多 3 次。
商家專用 Facebook 登入僅能支援特定權限和功能。如果商家專用 Facebook 登入不支援應用程式所要求的權限或功能,該應用程式將不符合使用資格。email
和 public_profile
權限必須與至少一個其他支援的權限搭配使用。
如果您的應用程式不符合加入使用的資格,可以新建一個自動提供商家專用 Facebook 登入功能的「商家類型」應用程式,並透過應用程式審查來要求支援的商家權限。
只需要求應用程式的功能所需的最少權限即可。請公開誠實地向用戶說明為什麼需要每個權限和功能。請注意,在要求 email
和 public_profile
權限時,每個應用程式安裝必須搭配至少一個其他支援的權限。您可以建立配置來查看支援的權限,並搭配您的權限要求以進行更多自訂加入。