API графа Facebook: в ответе json отсутствуют каналы - PullRequest
5 голосов
/ 07 января 2011

Я пытаюсь получить фиды пользователя через Graph API из моего приложения для Android. Обычно это работает, но некоторые отклики, которые я вижу на стене, отсутствуют в ответе json.

Я вызываю URL http://graph.facebook.com/someUserId/feed, с помощью методов Android Facebook SDK, поэтому маркер доступа должен предоставляться автоматически, но в моем случае это не очень актуально. Тем не менее, к слову, пользователь моего приложения проходит аутентификацию через OAuth.

Я уже проверил следующее:

  • все пользовательские каналы видны всем и каждому (установлено в настройках конфиденциальности)
  • ответ json не кэшируется моим браузером
  • Мне известно о пейджинге, но это не проблема. Проблема не в том, что я не получаю самые старые каналы, а в том, что некоторые каналы просто отсутствуют между .
  • Я зарегистрировал нового пользователя на Facebook, который не подключен к пользователю, с которого я хочу получить настенные каналы, и когда я открываю соответствующую стену, я вижу все каналы там, как и ожидалось, так как они все доступны для всех , Тем не менее, когда я открываю тот же связанный json urter unter http://graph.facebook.com/someUserId/feed,, некоторые каналы отсутствуют.

Это пример проблемы - поскольку все мои сообщения являются общедоступными, я могу просто вызвать URL-адрес json прямо в браузере, чтобы выполнить тест.

Я хочу получать настенные каналы от пользователя: http://www.facebook.com/mathias.lin

Снимок экрана 1: обратите внимание на 3 отмеченных сообщения, все опубликованные мной

alt text

и здесь ответ json, как вы можете видеть, сообщения 1-й и 3-й стен включены в json, а 2-й пост - нет. Почему?

Соответствующий URL-адрес json: http://graph.facebook.com/mathias.lin/feed

alt text

Я получаю «пропущенный» фид, когда добавляю access_token в URL - но почему? В опубликованном фиде есть настройка конфиденциальности для всех?!

Это недостающий канал, который я получаю при использовании 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"}

Я уже разместил вопрос на форуме разработчиков FB, ожидая ответа.

Похожие темы:

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

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

Facebook Graph API "/ userid / feed" возвращает пустое значение

Ответы [ 3 ]

4 голосов
/ 07 января 2011

Ваш подход верный, я видел JSON и да, второй отсутствует, я думаю, что это загрузить приложение из формы Android, попробуйте проверить настройки приложения для этого приложения. Или, если вы пытаетесь получить стену FQL, это гораздо лучший способ

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 голосов
/ 20 мая 2013

У меня была похожая проблема. Но для меня проблема была связана с неправильной настройкой области при первом входе в систему (для авторизации приложения). Я разместил похожий вопрос и получил ответ, который работал для меня здесь:

Facebook API, как получить все предметы на стене

0 голосов
/ 07 января 2011

Я прошел через это, то, как Facebook классифицирует , их разрешения как-то вводят в заблуждение, например, Publicly available может звучать как Available to everyone on Facebook, но, к сожалению, это не так.

Теперь в вашем случае, если вы уже аутентифицировали пользователя, попробуйте использовать:

/me/feed

Я полагаю, что это единственный случай, когда access_token не требуется в URL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...