網頁版「Facebook 登入」的存取憑證

登入程序最後會產生存取憑證。這個存取憑證會與每一個 API 呼叫一起傳遞,以證明此呼叫是由特定用戶從特定的應用程式發出。

Facebook JavaScript SDK 會自動在瀏覽器中處理存取憑證儲存和登入狀態追蹤,因此您不需要採取任何動作來將存取憑證儲存在瀏覽器中。

不過,常見的模式是將存取憑證傳遞給伺服器,然後伺服器會代表用戶發出呼叫。若要從瀏覽器取得憑證,您可以使用經由 FB.getLoginStatus() 傳回的 response 物件:

FB.getLoginStatus(function(response) {
  if (response.status === 'connected') {
    console.log(response.authResponse.accessToken);
  }
});

憑證是一串長度可變的不透明字串。

請緊記,在瀏覽器中產生的存取憑證存留期通常只有幾個小時,而且會由 JavaScript SDK 自動重新整理。如果您是從伺服器發出呼叫,則您需要產生長期憑證(詳見我們的存取憑證文件)

重新驗證存取憑證

應用程式通常需要確認發出「登入」對話框回應的用戶和啟動應用程式的用戶為同一人。如果您使用 Facebook 的 JavaScript SDK,假設您只從瀏覽器發出呼叫,這些檢查就會自動執行,因此您無需採取任何操作。

如果您決定要將存取憑證傳回伺服器,應該確保在存取憑證到達伺服器時,重新驗證這個存取憑證。我們的手動建置登入流程文件載有重新驗證憑證的說明。您需要驗證 app_iduser_id 是否符合您預期從存取憑證偵錯端點取得的資料。

執行 API 呼叫

在流程的這個階段,用戶已通過驗證並成功登入。您的應用程式現在可以代表用戶從瀏覽器發出 API 呼叫。在瀏覽器中,使用 FB.api() 呼叫來執行這項操作是最簡單的做法。FB.api() 會自動將存取憑證新增至呼叫。

這段程式碼:

FB.api('/me', function(response) {
    console.log(JSON.stringify(response));
});

將會傳回包含編號與名稱的陣列:

{
  "id":"101540562372987329832845483",
  "name":"Bob Smith"
}

如果您在伺服器端使用這個存取憑證發出呼叫,您就可以在伺服器上使用 SDK 來發出類似呼叫。許多人使用 PHP 建立網絡應用程式。您可以在我們的 PHP SDK 文件中找到一些發出伺服器端 API 呼叫的範例。

偵測用戶是否解除安裝應用程式

用戶無需與應用程式本身互動,即可透過 Facebook.com 解除安裝應用程式。為了協助應用程式偵測這類事件的發生,我們允許應用程式提供一個取消授權回呼網址,此網址在每次此事件發生時都會 ping。

您可以透過應用程式管理中心啟用取消授權回呼。