2012-02-15 9 views
18

Próbuję zaimplementować funkcję stronicowania strumienia (nowości) do mojej aplikacji, ale nie działa zgodnie z oczekiwaniami. Znalazłem wiele podobnych pytań tutaj, ale nie ma rozwiązania, aby rozwiązać ten problem.Paging nie działa i być może znalazłem przyczynę

Próbowałem obu Graph API i FQL i zachowanie było podobne. Sukcesem jest uzyskanie wyniku jeden lub dwa razy, ale po tym nie uzyskuje on wyniku (pobiera pustą tablicę JSON).

W końcu znalazłem ten problem zależy od access_token. Jeśli po prostu zmienię kod źródłowy, aby użyć przykładowego identyfikatora aplikacji Android SDK Stream zamiast własnego identyfikatora aplikacji do uwierzytelniania, działa on idealnie.

Uważam, że serwer facebook sprawdza identyfikator aplikacji i zwraca do mojej aplikacji dziwne lub ograniczone access_token.

Czy są jakieś warunki, aby uzyskać ważne access_token? Próbowałem dokładnie te same uprawnienia z przykładową aplikacją Android SDK Stream, ale nie udało się rozwiązać problemu.

Chcę udostępnić te informacje każdemu, kto boryka się z tym samym problemem i sprawdzić, czy zmiana identyfikatora aplikacji (w celu uzyskania ważnego access_token) rozwiąże sprawę.

+0

Czy możesz podać przykładowy kod, którego używasz z minuty na minutę? Nie jest jasne, co robisz. –

+0

Jakie uprawnienia udostępnia Twoja aplikacja? –

Odpowiedz

0

Token dostępu zwracany przez serwer Facebooka jest ważny tylko przez określony czas. Po tym musisz odświeżyć swój token dostępu, co jest żmudną pracą. Aby więc uniknąć tego tokena, musisz dodać uprawnienia "offline_access" do swojej listy uprawnień. Jest to podejście stosowane przez aplikacje związane prawie FaceBook.

0

Sdk na Facebooku dla Androida. Można go znaleźć here. Istnieją metody getter i setter, aby uzyskać i ustawić token dostępu. Przy pierwszym logowaniu jednokrotnym (SSO) musisz zapisać token dostępu w SharedPreferences i nie trzeba ponownie go uwierzytelniać. Wystarczy ustawić token dostępu ze swoich preferencji i zadzwonić pod numer feed dialog. Uprawnienia dostępu offline mają być przestarzałe. Facebookowy SDK dla Androida wykonuje resztę pracy. Po prostu dostarcz wystarczającą liczbę par przez Pakiet.

0

Kilka rzeczy na Androida:

  • uzyskać odpowiednie uprawnienia "read_stream"
  • Użyj android SDK
  • Sprawdź próbki dostarczonej w/android. W onCreate() I uwierzytelniać Facebook obiektowi

    this.facebook.authorize (to nowy DialogListener() {....}

  • badanie przy użyciu Facebooka Graph API Explorer.

Jeśli wkleisz jakiś kod, pomogę ci dalej debugować:

Powiązane problemy