2015-08-17 8 views
2

Я использую API Facebook с Java с Facebook4j.facebook4j post from is null

У меня есть два сервера, на тот, который использует Facebook 2.3 API, когда я получаю от поста,

Post post = connection.getFeed().get(0); 
post.getFrom(); 

я получить пользователь, но на сервере, который использует Facebook 2.4 API, то из нулевой.

Любая идея? Я не вижу каких-либо задокументированных изменений в API-интерфейсе.

ответ

2

Как описано в Facebook Platform Changelog, по состоянию на v2.4, вы теперь должны вручную указать поля, если вы хотите, чтобы они были извлечены:

Чтобы попытаться улучшить производительность мобильных сетей, узлов и ребер v2.4 требует, чтобы вы явно запрашивали поле (-ы), которое вам нужно для ваших запросов GET. Например, GET /v2.4/me/feed больше не включает в себя понравилось и комментарии по умолчанию, но GET /v2.4/me/feed?fields=comments,likes вернет данные. Для получения дополнительных подробности см. В документах о том, как запрашивать определенные поля.

Согласно docs on Post, соответствующее поле имеет название from. Чтобы запросить это поле в канале me, используя Facebook4J, вы можете использовать объект Reading, а именно:

facebook.getFeed(new Reading().fields("from")) 
+1

Спасибо, это работает. Я использую поля («id», «message», «caption», «description», «created_time», «from»), чтобы получить все мои поля. – James