網頁版「Facebook 登入」的存取權杖

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

Facebook SDK for Javascript 會自動在瀏覽器中處理存取權杖儲存和登入狀態追蹤,因此您無須做任何動作來將存取權杖儲存在瀏覽器中。

不過,常見的模式是將存取權杖傳遞給伺服器,然後伺服器會代表用戶發出呼叫。若要從瀏覽器取得權杖,您可以使用經由 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)該網址。

您可以透過應用程式主控板來啟用取消授權回呼。