我一直在使用JavaScript SDK試驗Facebook API。每當我登錄到Facebook上,我可以很可靠地打電話:https://graph.facebook.com/me/albums有時不會返回任何內容
function init() {
// Called after loading the Facebook SDK
FB.api("/me", function(response) {
console.log(response.first_name); // "John" (always works)
});
}
但我也希望得到一個用戶的相冊(當他們點擊一個鏈接),並由於某種原因,這個調用只能間歇性地:
$(document).ready(function) {
$("#get-albums-link").click(function() {
var accessToken = "456"; // Just an example
FB.api("/me/albums?access_token=" + accessToken, function(response) {
console.log(response); // An empty object about 40% of the time
});
});
});
發生這種情況時,我可以打開一個新的選項卡,驗證甚至直接查詢返回此相同的空結果(請注意,雖然這可能是一個授權問題,沒有明顯的跡象表明它是,它只是一個空JSON對象):
<!-- An HTTPS GET at https://graph.facebook.com/me/albums?access_token=456 -->
{
"data": [
]
}
您確定您使用的access_token具有照片權限嗎? – 2012-03-27 01:06:04
我沒有花時間使用Facebook API緩存,但我看到了jQuery的ajax()調用的相同問題。使用jsonp顯式調用查詢或設置nocache標誌可幫助瀏覽器繼續進行調用。您可能希望從facebook緩存控件 – 2012-03-27 01:07:08
@FelipeBrahm開始,它應該是一個正確的access_token,因爲畢竟有時候我會得到一個專輯對象。這只是其他時間,我不知道。可以肯定是一個緩存問題,因爲它似乎在返回空對象之前約15分鐘正常工作。如果我等20分鐘並刷新它通常再工作15分鐘。 – Andrew 2012-03-27 01:12:31