2011-01-07 12 views
5

Próbuję pobrać kanały użytkownika za pośrednictwem interfejsu graficznego z mojej aplikacji na Androida. Generalnie działa, ale brakuje niektórych kanałów, które widzę na ścianie, w odpowiedzi na jsona.Facebookowy interfejs API: brak plików danych w odpowiedzi json

Zadzwonię pod URL http://graph.facebook.com/someUserId/feed, używając metod Android Facebook SDK, więc token dostępu powinien zostać dostarczony automatycznie, ale nie jest to istotne dla mnie w moim przypadku. Niemniej jednak użytkownik mojej aplikacji jest uwierzytelniany za pośrednictwem protokołu OAuth.

już sprawdzone następujące:

  • wszystkie kanały Użytkownika są widoczne dla wszystkich/publiczny (zestaw w ustawieniach prywatności)
  • odpowiedź json nie są buforowane przez mojego przeglądarce
  • Jestem świadomy stronicowania, ale to nie jest problem. Problem nie polega na tym, że nie otrzymuję najstarszych kanałów, ale niektóre kanały są po prostu niedostępne między.
  • Zarejestrowałem nowego użytkownika Facebooka, który nie jest podłączony do użytkownika Chcę odzyskać kanały ścienne, a kiedy otworzę odpowiednią ścianę, zobaczę tam wszystkie kanały, zgodnie z oczekiwaniami, ponieważ wszystkie są publiczne dla wszystkich . Jednak po otwarciu tego samego powiązanego adresu json pod numerem http://graph.facebook.com/someUserId/feed brakuje niektórych kanałów.

Jest to przykład problemu - ponieważ wszystkie moje posty są publiczne, mogę po prostu wywołać adres URL json bezpośrednio w przeglądarce, aby wykonać test.

Chcę uzyskać ściany RSS z użytkownikiem: http://www.facebook.com/mathias.lin

Screenshot1: zwrócić uwagę na 3 oznaczone komentarze, wszystkie wysłane przez siebie

alt text

i tutaj odpowiedź json, jak widać , 1 i 3 słupki ścienne są zawarte w jsonie, ale drugi słupek nie jest. Czemu?

Odnośne json url to: http://graph.facebook.com/mathias.lin/feed

alt text

jestem coraz paszy 'brakuje' Kiedy dodać do access_token url - ale dlaczego? Wysłany kanał ma ustawienie prywatności dla "wszystkich" ?!

Jest brakującym feed że mam przy korzystaniu z access_token:

{"id":"504063796_485195138796","from":{"name":"Mathias Lin","id":"504063796"},"message":"Photo test upload from Android","picture":"http:\/\/photos-e.ak.fbcdn.net\/hphotos-ak-snc6\/hs021.snc6\/165194_485195123796_504063796_6062399_1841907_s.jpg","link":"http:\/\/www.facebook.com\/photo.php?fbid=485195123796&set=a.485195118796.256450.504063796","name":"Torres Photos","icon":"http:\/\/static.ak.fbcdn.net\/rsrc.php\/yz\/r\/StEh3RhPvjk.gif","actions":[{"name":"Comment","link":"http:\/\/www.facebook.com\/504063796\/posts\/485195138796"},{"name":"Like","link":"http:\/\/www.facebook.com\/504063796\/posts\/485195138796"}],"privacy":{"description":"Everyone","value":"EVERYONE"},"type":"photo","created_time":"2011-01-06T05:10:43+0000","updated_time":"2011-01-06T09:00:23+0000","likes":6,"comments":{"data":[{"id":"504063796_485195138796_3607414","from":{"name":"Mathias Lin","id":"504063796"},"message":"Awesome, photo upload now works as well. Not so much fun working with the Facebook SDK for Android, would have expected more functionality beyond that just very very simple graph api wrapper. But need to be considered that the android sdk development was part of an internship - but since it's it's open source, it can luckily be modified. Which has to be done due to some bugs (mixing up the bundle parameters for a post, getString, getByteArray). Api documentation could be improved.","created_time":"2011-01-06T05:26:04+0000"},{"id":"504063796_485195138796_3608020","from":{"name":"Renate Hermanns","id":"628810487"},"message":"Wow 
, how fast time passes by. Your daughter is nearly grown up ;-).","created_time":"2011-01-06T09:00:23+0000"}],"count":2},"attribution":"Torres"} 

Ja już wysłana pytanie na forum FB dev, czekając na odpowiedź.

Podobne wątki:

http://forum.developers.facebook.net/viewtopic.php?id=81365

http://forum.developers.facebook.net/viewtopic.php?id=75984

Facebook Graph API "/userid/feed" returning Blank

+1

myślę, że ta odpowiedź jest przydatna - http://stackoverflow.com/questions/4617606/facebook-graph-api- nie zwraca-wszystkie-paszy-pozycje-na-facebook-page/4622608 # 4622608. To praktycznie to samo pytanie. – Bartek

+0

Dzięki za link! To naprawdę interesujące, chociaż moja sprawa jest nieco inna, ponieważ wszystkie posty zawierają. ten brakujący są wszystkie ode mnie i na mojej własnej ścianie. Nie widzę, co sprawia, że ​​"brakujący" post różni się od innych. Afaik w przypadku, gdy jesteś połączony, wszystkie własne posty przez realplayer są pokazane, wszystkie zagraniczne są ukryte. Ale w moim przypadku nawet mój własny post nie jest wyświetlany bez hasła access_token. –

+0

Ach, moja zła, przykro mi - nie zauważyłem, że brakujący post został stworzony przez ciebie. Dziwne, w rzeczy samej. Z innej strony - rzuciłem okiem na twoją ścianę i zauważyłem, że zdjęcie tak naprawdę nie jest postem - kiedy klikniesz na czas pod każdym postem, znajdziesz jego identyfikator, a link pod zdjęciem zabierze Cię bezpośrednio do albumu. Po przeanalizowaniu kilku ścian wydaje mi się, że tylko problemy powodują problem. – Bartek

Odpowiedz

4

Twoje podejście jest poprawne, widziałem JSON i tak to brakuje drugi, myślę, że to przesyłanie aplikacji z adroidem, spróbuj sprawdzić ustawienia aplikacji dla tej aplikacji. Lub, jeśli próbuje odzyskać FQL ścianie jest dużo lepszy sposób

SELECT post_id, actor_id, target_id, message FROM stream WHERE source_id in (SELECT target_id FROM connection WHERE source_id=<uid> AND is_following=1) AND is_hidden = 0 
+0

Tak, post został zrobiony przez moją aplikację Android, ale nie jestem pewien - które ustawienia aplikacji powinienem sprawdzić? Nie znalazłem nic na temat ustawień prywatności ani włączania/wyłączania kanałów publikowanych za pośrednictwem mojej aplikacji. Ok, zajrzę też do FQL, niestety wymaga to jeszcze raz niestandardowej implementacji, ponieważ SDK serwisu Facebook na Androida domyślnie używa standardowego interfejsu API. –

+0

btw: a album, w którym publikowane jest zdjęcie (automatycznie utworzony przez aplet FB), ustawiony jest na privacy = Everyone –

+1

Z FQL otrzymuję kanały, które zostały pominięte przez zwykły interfejs graficzny. Dzięki za podpowiedź. –

0

Byłem przez to droga Facebook jest kategoryzacji swoje uprawnienia jest jakiś błąd, na przykład Publicly available może brzmi jak Available to everyone on Facebook ale apperantly to nie jest.

Teraz w twoim przypadku, jeśli już uwierzytelnieniu użytkownika, a następnie spróbuj użyć:

/me/feed 

myślę, że jest to jedyny przypadek, w którym access_token nie jest potrzebna w adresie URL.

+0

/me/feed zwróci tylko moje własne posty, chcę użyć dowolnego ID użytkownika/kanału. Nie całkiem rozumiem, że niektóre kanały są zwracane, a niektóre nie, gdy nie używam żadnego klucza dostępu, mimo że wszystkie mają te same ustawienia prywatności. Ale ja/feed to nie jedyny przypadek, w którym nie potrzebujesz tokena dostępu - po prostu spróbuj otworzyć http://graph.facebook.com/mathias.lin/feed w przeglądarce - dostaniesz moje kanały (z niektóre brakujące, z nieznanych przyczyn), prawda? –

+0

nie, to co mówię ... jeśli postępujesz zgodnie z procesem uwierzytelniania i masz ważną sesję ... czy '/ me/feed' zwróci wszystkie kanały? Przypuszczam, że powinien, dlatego * Domyślam się * '/ user_id/feed? Access_token = xxx' ='/me/feed' – ifaour

+0

i * nie jest to konieczne * Chciałem uzyskać pełny dostęp bez jest obecny w adresie URL .. – ifaour

0

Miałem podobny problem. Ale dla mnie problem polegał na niepoprawnym ustawianiu zakresu przy pierwszym logowaniu (w celu autoryzacji aplikacji). Zamieściłem podobne pytanie i uzyskałem odpowiedź, że pracował dla mnie tutaj:

Facebook API how to get all wall items