2012-03-27 20 views
7

Javascript SDK'sı kullanarak Facebook API'sı deniyorum.https://graph.facebook.com/me/albums bazen hiçbir şey döndürmez

function init() { 
    // Called after loading the Facebook SDK 
    FB.api("/me", function(response) { 
     console.log(response.first_name); // "John" (always works) 
    }); 
} 

Ama aynı zamanda (bir bağlantısını tıkladığında) bir Kullanıcıların fotoğraf albümleri almak istiyorum ve nedense bu çağrı yalnızca zaman zaman çalışır: Ben Facebook'ta oturum ediyorum zaman oldukça güvenilir bir çağırabilir

$(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 
     }); 
    }); 

}); 

Bu durumda, yeni bir sekme açabilirim ve doğrudan sorguların bile aynı boş sonucu döndürdüğünü doğrulayabilirim (bu bir yetkilendirme sorunu olsa da, bunun açık bir belirtisi olmadığını unutmayın; yalnızca boş JSON nesnesi):

<!-- An HTTPS GET at https://graph.facebook.com/me/albums?access_token=456 --> 
{ 
    "data": [ 

    ] 
} 
+0

Kullandığınız access_token'in fotoğraf iznine sahip olduğundan emin misiniz? –

+0

Facebook API önbellekleme ile zaman geçirmedim ama jQuery'nin ajax() çağrıları ile aynı sorunu gördüm. Açıkça jsonp ile sorguları çağırmak veya bir nocache bayrağı ayarlamak, tarayıcının arama yapmaya devam etmesine yardımcı olur. Bir facebook önbellek denetimi –

+0

@FelipeBrahm ile başlamak isteyebilirsiniz, doğru bir access_token olmalıdır, çünkü sonuçta bazen bir Albümler nesnesi olsun. Sadece diğer zamanlarda değil. Boş nesneleri iade etmeden önce yaklaşık 15 dakika düzgün çalıştığı göz önüne alındığında, kesinlikle önbelleğe alma sorunu olabilir. 20 dakika bekleyip tazelenirseniz, genellikle 15 dakika daha çalışır. – Andrew

cevap

1

Felipe yukarıda belirttiği gibi, erişim belirtimi {"data": []} geri dönmeyeceği için erişim belirteci sorun olabilir. Kendiniz deneyin:

Ayrıca, geçerli bir auth_token olsa bile, SDK gerektirmez, bu yüzden kullanmayın. Grafik.facebook.com/me/albums?access_token=123423 & access_token = 981234 (SDK tarafından eklenen ikinci erişim jetonu) gibi bir şeyle sonuçlanabilir. Şahsen, FB.api işlevinin nasıl oluşturulduğunu bilmiyorum, ancak yalnızca şu belgeleri takip etmeyin: https://developers.facebook.com/docs/reference/javascript/FB.api/

Sorunlarınız varsa lütfen bize bildirin.

+0

teşekkürler. Kendimi soymak istemiyorum ama sorun gitmiş gibi görünüyor. Keşke iyi bir açıklama yapmış olsaydım. Şimdi farklı olan şeyler: (1) Kodu dokunduğumdan birkaç hafta geçti. Belki de yeni kaydedilmiş uygulamamla Facebook'ta bir şeyler yapmam gerekiyordu. (2) Ben albümleri almak için 'FB.api (...)' çağrılarını kullanmıyorum, jQuery '$ .ajax (..) 'doğrudan kullanırım. (3) Yukarıda belirtilen '$ .ajax (...) 'çağrılarında, erişim belirtecinde I _do_ geçer. – Andrew

İlgili konular