0

我從facebook..here訪問令牌很困惑就是我如何獲得用戶的訪問令牌,並用它來從圖形API不同的Facebook訪問令牌的JavaScript SDK

window.fbAsyncInit = function() { 
    FB.init({ 
     appId  : 'app ID', 
     status  : true, 
     cookie  : true, 
     xfbml  : true, 
     oauth  : true,  
    });  
    FB.getLoginStatus(getStatus);  
    FB.Event.subscribe('auth.authResponseChange', getStatus); 

    function getStatus(response) { 
     if (response.status === 'connected') { 
      var accessToken = response.authResponse.accessToken; 
      console.log("accessToken = " + accessToken); 

      $.ajax({ 
       dataType : "jsonp", 
       type  : "GET", 
       url  : "https://graph.facebook.com/me/albums?access_token=" + accessToken, 
       success : function(data) { 
        $.each(data, function(index, value) { 
         console.log(index + ": " + value); 
        }) 
       } 
      });      
     } 
    } 
}; 

然而得到的數據,我總是得到一個空的數據。在我訪問以下圖形API文檔之後:https://developers.facebook.com/docs/reference/api/並單擊其中一個圖形鏈接,我注意到在那裏生成的訪問令牌總是與我從代碼中檢索到的不同。例如,圖形API文檔中的當前訪問令牌是

「AAAAAAITEghMBAMwuyHZCO3VOAvCm9hHpaZC9PGV9238ixsZB7zSfuplZBTZCLRj6cEViZADJlVcjOfInwvcbhqu3XBF1w4ZAxvPbexcGQZAYzb4bHAKsMbLF」

和一個控制檯日誌

「AAAG0ZCFantJ8BAAFcMdDOyDyT4OBtjrvULEaS2o94gZAU7U1xITaogFXCZBghQP8G9bjEh3XSCATQOZCUSZCuNWFvEfypIAmcz9bkbk5qRBlHUZAOE4guW」

我認爲我可以這樣做錯誤的方法。任何人都可以幫助我解釋如何以正確的方式從圖形API中檢索數據?

任何形式的幫助將不勝感激。在此先感謝:)

回答

2

首先運行這個URL並附帶authToken:

https://graph.facebook.com/me/permissions?access_token=USER_ACCESS_TOKEN

你幾乎肯定只能看到的反應,這就是爲什麼你不能從你的電話到用戶的相冊獲取數據基本權限。

然後你會想通過Authentication Process運行你的用戶,確保你的request the permissions you need(在你的情況下可能是'user_photos')。

更多信息可在這兩個鏈接中找到。祝你好運!

+0

嘿謝謝..我總是得到空白數據的原因是因爲它沒有在權限中列出。起初,我認爲只要我有訪問令牌,我就可以訪問任何用戶的信息..謝謝很多 :) – 2012-07-10 10:14:56

0

訪問令牌將永遠不會相同。所以這種行爲是正確的。

回到你的問題,我認爲它的大部分範圍相關的問題。

+0

那麼如何使用這些訪問令牌從圖形API中檢索數據? – 2012-07-10 09:26:54

0

我已經使用Facebook C#SDK開發的應用程序,在該應用程序,我沒有這樣說:

  1. 在一個職位提交,將用戶重定向至Facebook(與喜歡的appid一些參數,app-secret,auth-token和 redirect-url);
  2. Facebook會要求用戶使用他的憑證登錄。
  3. 當用戶登錄後,Facebook將重定向回重定向-URL。 (使用authtoken和一個新的認證碼)。
  4. 然後我們應該使用這個認證碼,app-id和app-secret並獲得用戶訪問令牌。 (這是通過做一個REST API調用 網址 https://graph.facebook.com/oauth/access_token?client_id=client_id&redirect_uri=redirect_uri&client_secret=client_secret&code=auth-code 做這將返回用戶令牌和到期時間的令牌
  5. ,然後我們可以發佈使用該用戶的訪問令牌到FB。

最初我誤解了身份驗證碼,並用它作爲用戶訪問令牌,我總是得到的結果爲未授權令牌。 請檢查是否這會幫助你或沒有。