Извлечение постов пользователей на Facebook через Graph API - PullRequest
4 голосов
/ 25 января 2012

В настоящее время я работаю над приложением facebook, которое фиксирует записи на стене для указанного пользователя, страницы или группы, после того как пользователь авторизовал приложение, я цитирую access_token, который возвращается для вызова метода

https://graph.facebook.com//feed?access_token=

это прекрасно работает для страниц и групп, так как нам нужен только действительный токен, однако для пользователей результаты различаются в зависимости от отношения между пользователем, который авторизовал приложение, и пользователем, чьи сообщения фиксируются.

Например, если нет связи между двумя пользователями, некоторые сообщения не возвращаются, даже если они являются общедоступными и отображаются при просмотре профиля пользователя, однако, если они являются друзьями, возвращаются другие сообщения.

Может кто-нибудь объяснить это поведение? И возможно ли получить все сообщения этим методом?

Ответы [ 4 ]

6 голосов
/ 25 января 2012

Да, согласно разрешениям, указанным в https://developers.facebook.com/docs/reference/api/permissions, результаты вызова различаются в зависимости от отношения.

Однако, когда что-то общедоступно и вы используете токен доступа, который не принадлежит пользователю, результаты не возвращаются.Я не могу вспомнить время, когда это было не так.По какой-то странной причине (по замыслу или бездействию со стороны Facebook) использование API-интерфейса Graph для доступа к общедоступным публикациям с использованием токена доступа пользователя просто не хочет работать.

Например, вы можете видеть некоторые общедоступные элементыздесь

http://www.facebook.com/zuck http://graph.facebook.com/zuck

Тем не менее, вы не можете получить какой-либо канал отсюда без токена доступа

https://graph.facebook.com/zuck/feed

{
   "error": {
      "message": "An access token is required to request this resource.",
      "type": "OAuthException"
   }
}

Давайте попробуем добавить токен доступа пользователя, который не принадлежит Цаку или другу Цука.https://graph.facebook.com/zuck/feed?access_token={UserAccessToken}

И вот что мы получаем:

{
   "data": [

   ]
}

А как насчет токена доступа к приложению?Давайте попробуем https://graph.facebook.com/zuck/feed?access_token={AppAccessToken}

{
   "error": {
      "message": "Invalid OAuth access token signature.",
      "type": "OAuthException"
   }
}

Итак, как вы можете видеть, с помощью графика трудно получить вещи, которые не соответствуют вашему токену доступа.

3 голосов
/ 04 июля 2013

Мне удается получить большинство каналов от записи на стене пользователя. Хотя это старый пост, я надеюсь, что кто-то сможет получить то, что он хочет, из моего ответа.

Прежде чем получить токен доступа (для получения каналов), необходимо добавить несколько правильных Чтений разрешений"ключей". Например, вам нужно будет добавить « read_stream » и « user_status » (которые я обнаружил, что это наиболее важный «ключ» разрешения для генерации правильного токена доступа, получить так называемые «общедоступные» каналы).

Вы можете добавить больше в генерацию токена доступа, либо вам нужно разрешение на GET, либо POST, либо ОБА.

Источник здесь: https://developers.facebook.com/docs/howtos/ios-6/#nativeauthdialog

Одна вещь, которую я обнаружил, заключается в том, что способ получения результатов фидов с пользовательской страницы "Главная / О нас" и страницы Facebook (которая создана для того, чтобы людям нравиться (не добавлять друзей)) отличается. Ключ упомянут выше, « read_stream » и « user_status ». Поэтому лучше добавить оба разрешения, чтобы сгенерировать токен доступа, чтобы получить все в каналах.

1 голос
/ 28 мая 2014

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

Источник: https://developers.facebook.com/bugs/290004301178437/

0 голосов
/ 18 августа 2016

Согласно последним API,

FB.api("/me/feed","get",function(response) {//callback})

должно работать и работать хорошо.Он работает сейчас, но Facebook может изменить его в будущем.

...