存取權杖- Facebook 登入
文章推薦指數: 80 %
存取權杖是一種可辨識用戶、應用程式或粉絲專頁的隱晦字串,可以讓應用程式用來進行圖形API 呼叫。
當用戶使用「Facebook 登入」連結到應用程式,並批准權限取得要求, ...
Facebook登入總覽iOSAndroid網頁裝置專用最佳作法用戶體驗設計登入安全性權限存取權杖對應應用程式與粉絲專頁的用戶驗證與資料存取的比較測試進階變更紀錄限制登入BusinessLoginforDirectBusinessesMessenger登入連結存取權杖存取權杖是一種可辨識用戶、應用程式或粉絲專頁的隱晦字串,可以讓應用程式用來進行圖形API呼叫。
當用戶使用「Facebook登入」連結到應用程式,並批准權限取得要求,這個應用程式將能夠取得存取權杖,供用戶暫時且安全存取FacebookAPI。
存取權杖可經由許多方法取得。
由權杖中包含的資訊,可得知這個權杖將於何時到期,以及哪個應用程式產生了這個權杖。
因為隱私檢查的關係,在Facebook上的大多數API呼叫都需要包含存取權杖。
不同類型的存取權杖可用來支援不同使用情況:存取權杖類型說明用戶存取權杖每當應用程式呼叫API以代表用戶讀取、修改或寫入特定用戶的Facebook資料時,就會需要這種類型的存取權杖。
用戶存取權杖通常可經由「登入」對話方塊取得,且通常會要求用戶允許您的應用程式取得權杖。
應用程式存取權杖若要修改和讀取應用程式設定,就會需要這種類型的存取權杖,此外也可以用來發佈開放社交關係圖動作。
應用程式存取權杖可使用應用程式與Facebook之間預先同意的密鑰產生,之後可在變更應用程式範圍設定的呼叫期間使用。
您可經由伺服器對伺服器的呼叫取得應用程式存取權杖。
粉絲專頁存取權杖這類存取權杖和用戶存取權杖類似,不過粉絲專頁存取權杖可提供權限給讀取、寫入或修改屬於Facebook粉絲專頁資料的API。
若要取得粉絲專頁存取權杖,您必須先從取得用戶存取權杖開始,然後要求取得您所需的粉絲專頁權限。
您有了用戶存取權杖之後,就可以經由圖形API取得粉絲專頁存取權杖。
用戶端權杖用戶端權杖是一種識別碼,您可以將用戶端權杖嵌入原生行動應用程式二進位檔或桌面版應用程式,以辨識您的應用程式。
由於用戶端權杖嵌入在應用程式內,因此並不是用來當作密鑰識別碼使用。
用戶端權杖可用來存取應用程式層級API,但只能存取非常有限的子集。
您可以在應用程式主控板內找到這個用戶端權杖。
因為用戶端權杖很少用到,所以我們將不會在這份文件中討論,不過,您可以在任何使用用戶端權杖的API文件中找到相關資訊。
用戶存取權杖儘管每個平台都可經由不同的API產生存取權杖,但是所有平台都應遵循基本策略,以取得用戶權杖:短期權杖和長期權杖用戶存取權杖有兩種形式:短期權杖和長期權杖。
短期權杖的存留期通常約為一到兩個小時,而長期權杖通常有約60天的存留期。
您不應依賴這些剩餘使用期,使用期可能在未警告下隨時變更,或提早過期。
詳情請參閱處理錯誤一節。
經由網頁版登入所產生的存取權杖是短期權杖,但您可以將這些權杖轉換成長期權杖,方法是使用應用程式密鑰進行伺服器端API呼叫。
根據預設,使用FacebookiOS和AndroidSDK的行動應用程式會取得長期權杖。
使用長期權杖對Facebook行銷API進行標準存取的應用程式,將收到沒有到期時間的長期權杖。
這些權杖仍有可能因其他原因而失效,但不會只因時間因素就到期。
這點也適用於企業管理平台中系統用戶的存取權杖。
權杖屬於可攜式瞭解存取權杖時,很重要的一個認知是權杖具有可攜式特性。
您有了存取權杖後,可以用來從行動用戶、網頁瀏覽器或您的伺服器,對Facebook的伺服器進行呼叫。
如果權杖是在用戶端上取得,您就可以傳送這個權杖到您的伺服器,然後用在伺服器對伺服器呼叫。
如果權杖經由伺服器呼叫取得,您也可以傳送這個權杖給用戶端,然後從用戶端進行呼叫。
在您的用戶端和伺服器之間移動權杖必須透過HTTPS以安全的方式進行,以確保用戶帳號的安全性。
深入瞭解在用戶端和伺服器之間移動權杖的可能影響。
不同平台會有不同的方法來開始這個程序,而且其中所包含的功能,可代表開發人員和授予權限的用戶管理存取權杖:AndroidFacebookAndroidSDK可透過com.facebook.AccessToken類別自動管理用戶存取權杖。
您可以實作Android專用Facebook登入,深入瞭解如何取得用戶存取權杖。
如需擷取用戶存取權杖,則可檢查Session.getCurrentAccessToken。
程式碼範例@Override
publicvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
accessToken=AccessToken.getCurrentAccessToken();
}iOSFacebookiOSSDK可透過FBSDKAccessToken類別自動管理用戶存取權杖。
您可以實作iOS專用Facebook登入,深入瞭解如何取得用戶存取權杖。
如需擷取存取權杖,則可檢查FBSDKAccessToken.currentAccessToken。
程式碼範例-(void)viewDidLoad
{
[superviewDidLoad];
NSString*accessToken=[FBSDKAccessTokencurrentAccessToken];
}JavaScriptFacebookJavaScriptSDK會自動在瀏覽器Cookie中取得並保留用戶存取權杖。
您可以呼叫FB.getAuthResponse,如此將會在回應內加入accessToken屬性,方便擷取用戶存取權杖。
程式碼範例FB.getLoginStatus(function(response){
if(response.status==='connected'){
varaccessToken=response.authResponse.accessToken;
}
});請參閱Facebook網頁專用SDK文件,瞭解完整的程式碼範例。
網頁版(不使用JavaScript)若不使用FacebookJavaScriptSDK建立網頁版應用程式,您需要在執行該文件所列步驟期間產生存取權杖。
應用程式存取權杖應用程式存取權杖可用來代表應用程式提出對FacebookAPI的要求,而非代表用戶。
這可以用來修改應用程式的參數、建立並管理測試用戶,或是讀取您的應用程式洞察報告。
限制使用用戶存取權杖提出要求的應用程式,通常可以看到某些用戶資料,但如果使用應用程式存取權杖,就不一定可以看到這些用戶資料。
如果您在應用程式中讀取並使用用戶資料,應該要使用用戶存取權杖,而非應用程式存取權杖。
如果您的應用程式在應用程式主控板的進階設定中設定為Native/Desktop,系統就會認為應用程式存取權杖不安全,而無法用於API呼叫。
這是因為我們假設原生或桌面版應用程式會把應用程式密鑰嵌入某處(因此使用這種密鑰產生的應用程式存取權杖並不安全)。
產生應用程式存取權杖若要產生應用程式存取權杖,您需要:應用程式編號應用程式密鑰程式碼範例curl-XGET"https://graph.facebook.com/oauth/access_token
?client_id={your-app-id}
&client_secret={your-app-secret}
&grant_type=client_credentials"這個呼叫將傳回應用程式存取權杖,可用來取代用戶存取權杖,以進行如上所述的API呼叫。
同樣地,為了安全起見,切勿將應用程式存取權杖硬式編碼至用戶端程式碼,這樣做有可能讓載入您網頁或反編譯您應用程式的所有用戶,都有存取應用程式密鑰的完整權限,並可修改您的應用程式。
這代表在大多數情況下,您將只能在伺服器對伺服器呼叫中使用應用程式存取權杖。
請注意,這項要求會使用您的應用程式密鑰,因此切勿以用戶端程式碼或可能遭反編譯的應用程式二進位檔進行。
最重要的是,絕對不要與任何用戶分享應用程式密鑰。
因此,這個API呼叫只應該使用伺服器端程式碼進行。
還有另一種方法可進行圖形API呼叫,且不需要使用所產生的應用程式存取權杖。
當您進行呼叫時,可以只傳遞應用程式編號和應用程式密鑰,並將其當成access_token參數:curl-i-XGET"https://graph.facebook.com/{api-endpoint}&access_token={your-app_id}|{your-app_secret}"是否使用產生的存取權杖,或者使用這個方法,取決於您想將應用程式密鑰隱藏在哪裡。
粉絲專頁存取權杖粉絲專頁存取權杖可用在圖形API呼叫中,以管理Facebook粉絲專頁。
若要產生粉絲專頁存取權杖,粉絲專頁的管理員必須授予應用程式粉絲專頁權限或所需的權限。
授予權限之後,您就可以使用具有所需權限的用戶存取權杖,擷取粉絲專頁存取權杖。
程式碼範例curl-i-XGET"https://graph.facebook.com/{your-user-id}/accounts?access_token={user-access-token}這項要求將傳回您具有角色的粉絲專頁清單和每個粉絲專頁的相關資訊,像是粉絲專頁類別、您在各粉絲專頁上所擁有的特定權限,以及粉絲專頁存取權杖。
{
"data":[
{
"access_token":"EAACEdE...",
"category":"Brand",
"category_list":[
{
"id":"1605186416478696",
"name":"Brand"
}
],
"name":"AshCatPage",
"id":"1353269864728879",
"tasks":[
"ANALYZE",
"ADVERTISE",
"MODERATE",
"CREATE_CONTENT",
"MANAGE"
]
},
{
"access_token":"EAACEdE...",
"category":"PetGroomer",
"category_list":[
{
"id":"163003840417682",
"name":"PetGroomer"
},
{
"id":"2632",
"name":"Pet"
}
],
"name":"Unofficial:TiggertheCat",
"id":"1755847768034402",
"tasks":[
"ANALYZE",
"ADVERTISE",
"MODERATE",
"CREATE_CONTENT"
]
}
]
}您可以使用粉絲專頁存取權杖代表粉絲專頁發出API呼叫。
例如,您可以發佈近況更新到粉絲專頁(而非這位用戶的動態時報),或讀取粉絲專頁洞察報告資料。
每個粉絲專頁、管理員和應用程式都有專屬的粉絲專頁存取權杖。
用戶端存取權杖iOS和Android適用的SDK第13.0版預計在2022年初發行,自該版本起,所有對圖形API發出的呼叫都必須取得用戶端權杖。
支援用戶端存取權杖的圖形API端點非常少。
與應用程式權杖相同的是,用戶端權杖代表應用程式(而不是使用者)發出圖形API要求,但應僅於必須將權杖內嵌在行動或網路用戶端程式碼中,而不是儲存在安全後端伺服器中的情況下使用。
如果端點除了支援用戶端權杖之外還支援其他類型的權杖,您應使用其他類型的權杖(如果可以的話)。
與其他權杖不同的是,用戶端存取權杖無法單獨用於要求,必須結合應用程式編號使用。
若要這樣做,請將權杖附加到應用程式編號結尾,並以豎線符號分隔(|):{app-id}|{client-token}例如:access_token=1234|5678若要取得用戶端存取權杖,請登入應用程式主控板,然後依序前往設定>進階>帳號安全>用戶端權杖。
存取權杖長度由於Facebook會變更存取權杖中儲存的內容及其編碼方式,因此所有存取權杖類型的長度都會隨時間而變長。
存取權杖的長度隨時間變長或變短都是可預期的。
請使用可變長度且無特定最大尺寸的資料類型來儲存存取權杖。
瞭解詳情您可使用存取權杖工具查看存取權杖清單,以及各權杖的偵錯資訊。
到期與展延偵錯和錯誤處理使用權杖搭配各種應用程式類型
延伸文章資訊
- 1fb轉換api設定教學 - MTMG網路行銷公司
- 2串接Facebook 轉換API (Conversions API) - 歡迎使用 ...
串接Facebook 轉換API (Conversions API) · 1. 往Facebook事件管理工具> 資料來源 > 設定> 按下「建立存取權杖」。 · 2. 產生存取權杖」點擊「下一...
- 3離線轉換- 行銷API
4.企業管理平台系統用戶和權杖. 有了系統用戶存取權,應用程式便可透過API 向Facebook 傳送資料。若要建立系統用戶:. 前往企業管理平台> 企業設定。 選擇系統用戶。
- 4臉書FB 廣告為了iOS14 改版,ROAS大跌把數位廣告行銷人員 ...
實作之後發現,CAPI 要做差不多的事(送轉換事件的資訊),卻相當搞剛,個人帳號的像素裡的「建立存取權杖(Create Access Token)」按鈕是灰色的不能 ...
- 5使用Facebook 轉換API - 1shop 一頁購物
1.前往「Facebook事件管理工具> 資料來源」。 · 2.點擊要使用的「資料來源」,選擇「設定」。 · 3.移動至「轉換API」,按下「建立存取權杖」,然後跳到第9 ...