Eksperymentowałem z interfejsem API Facebooka, używając pakietu JavaScript SDK. Ilekroć jestem zalogowany na Facebook mogę całkiem wiarygodnie zadzwonić:https://graph.facebook.com/me/albums czasami nic nie zwraca
function init() {
// Called after loading the Facebook SDK
FB.api("/me", function(response) {
console.log(response.first_name); // "John" (always works)
});
}
Ale też chcą dostać albumy użytkownicy ze zdjęciami (po kliknięciu linku) iz jakiegoś powodu to wezwanie działa tylko sporadycznie:
$(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
});
});
});
Kiedy to się stanie, mogę otworzyć nową kartę i sprawdzić, czy nawet bezpośrednie zapytania zwracają ten sam pusty wynik (zauważ, że chociaż może to być problem z autoryzacją, nie ma wyraźnego wskazania, że tak jest, jest to po prostu pusty Obiekt JSON):
<!-- An HTTPS GET at https://graph.facebook.com/me/albums?access_token=456 -->
{
"data": [
]
}
Czy jesteś pewien, że token dostępu, którego używasz, ma uprawnienia do zdjęć? –
Nie spędziłem czasu z buforowaniem API Facebooka, ale widziałem ten sam problem z wywołaniami ajax() jQuery. Jawne wywoływanie zapytań za pomocą jsonp lub ustawianie flagi nocache pomaga przeglądarce kontynuować nawiązywanie połączeń. Możesz zacząć od kontroli pamięci podręcznej facebooka –
@FelipeBrahm, powinien to być prawidłowy access_token, ponieważ przecież czasami otrzymuję obiekt Albums. Po prostu w innych przypadkach nie. Z pewnością może to być problem z buforowaniem, ponieważ wydaje się działać poprawnie przez około 15 minut przed zwróceniem pustych obiektów. Jeśli poczekam 20 minut i odświeżę, zwykle działa ponownie przez kolejne 15 minut. – Andrew