Токен доступа пользователя для поиска через граф Facebook - PullRequest
12 голосов
/ 17 октября 2011

Согласно инструкции здесь для поиска общедоступной информации (так как https://graph.facebook.com/search?q=QUERY&type=OBJECT_TYPE) должен иметь действительный токен доступа. Как я знаю, токен доступа - это когда пользователь авторизовал приложения для доступа к своей информации. ; но это вызывает публичную информацию. Как получить токен доступа к приложениям для поиска публичной информации?

На этой странице Facebook автоматически добавляет мой токен доступа к ссылке как

https://graph.facebook.com/search?q=watermelon&type=post&access_token=MY_ACCESS_TOKEN

Я создал токен доступа своими приложениями как https://graph.facebook.com/oauth/access_token?client_id=APP_ID&client_secret=SECRET_ID&grant_type=client_credentials

Когда я использую сгенерированный токен доступа в URL https://graph.facebook.com/search?q=watermelon&type=post&access_token=GENERATED_ACCESS_TOKEN,, выдает ошибку

{
   "error": {
      "message": "A user access token is required to request this resource.",
      "type": "OAuthException"
   }
}
  1. Как я могу сгенерировать токен доступа моими приложениями?
  2. Или мне нужно сгенерировать токен доступа под своей учетной записью? если да, то как?
  3. Поскольку он выполняет поиск в общедоступном профиле, Facebook не требуется авторизация при каждом поиске. Могу ли я сгенерировать токен постоянного доступа для выполнения различных поисков?

Ответы [ 5 ]

6 голосов
/ 27 июня 2013

В интерфейсе поиска API Graph есть изменения, ожидающие перехода на Q3 2013.Следующее изменение вступит в силу 10 июля 2013 года:

Изменения в поиске API-интерфейса Graph Требуются токены доступа к приложению для всех поисковых вызовов API-интерфейса Graph, кроме Places и Pages.Поиск приложения больше не будет поддерживаться.

https://developers.facebook.com/blog/post/2013/04/03/platform-updates--operation-developer-love/

3 голосов
/ 16 октября 2013

Для поиска API графа Facebook используйте

http://graph.facebook.com/search?q=watermelon&type=post

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

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

Но остается вопрос: как мы должны генерировать токен пользовательского приложения для наших приложений, не заставляя других пользователей аутентифицировать наши приложения?

1 голос
/ 29 марта 2013

Запрашиваемый токен доступа выглядит как токен доступа «приложения». Этот токен отличается от токена доступа пользователя или страницы и используется для разных целей.

https://developers.facebook.com/docs/howtos/login/login-as-app/

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

В зависимости от того, что вы на самом деле пытаетесь сделать, маркер приложения может быть неправильной формой OAuth. Ваш пример (поиск общедоступных постов с термином арбуз) не требует токена OAuth, поэтому вы явно пытаетесь использовать другой тип поиска по графику. Не говоря, к чему вы на самом деле пытаетесь получить доступ, невозможно дать вам правильный совет.

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

Это даст вам краткосрочный токен доступа для этого пользователя, который позволит вам все, что находится в пределах разрешений, для которых вы запрашивали разрешение.

Этот токен будет действовать только в течение короткого периода времени после входа пользователя в ваше приложение. Он также может быть повышен до долгосрочного токена доступа

https://developers.facebook.com/docs/howtos/login/extending-tokens/

0 голосов
/ 14 августа 2013

Если вы выполняете программный поиск и конечный пользователь никогда не будет видеть его, вы можете использовать его вместо:

&access_token=app_id|app_secret

Подробнее об этом здесь: https://developers.facebook.com/docs/facebook-login/access-tokens/

0 голосов
/ 17 октября 2011

Вам не нужно передавать токен для поиска в общедоступной информации (если вы не хотите искать в контексте пользователя).Просто позвоните по следующему URL и посмотрите URL.Пожалуйста, отметьте, что я использовал http вместо https.

http://graph.facebook.com/search?q=watermelon&type=post

Но, чтобы сделать мой ответ более ясным - с должным образом предоставленным access_token, я могу позвонить по версии https вышеупомянутого URL (версия https требует токен доступа) и онпросто отлично работает без проблем.

...