Facebook Graph API - Использование «токена доступа к приложению» для получения фидов Facebook (решение) - PullRequest
7 голосов
/ 25 февраля 2012

Ну, это может звучать странно. Когда приложение facebook настроено как приложение «Собственный» / «Рабочий стол» («Приложения»> «Ваше приложение»> «Дополнительно»> «Тип приложения»), «токен доступа к приложению» получается из этой процедуры

https://graph.facebook.com/oauth/access_token?" + "client_id =" + APP_ID + "& client_secret =" + APP_SEC + "& Grant_type = client_credentials"

Не будет работать, чтобы получить каналы или пост со страницы Facebook. Согласно документации на фейсбуке для получения каналов требуется любой допустимый access_token или user access_token , что довольно странно, но это не работает, если приложение настроено как Native / Desktop.

1 Решение, найденное после многодневного исследования, пришло к разочаровывающему выводу, что оно должно быть настроено как веб-приложение в (Приложения-> Ваше приложение-> Дополнительно-> Тип приложения).

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

Надеюсь, я сэкономил вам день, если вы в эти дни работали над новостными лентами на Facebook и стряхивали свои волосы из-за разочарования по понятным причинам.

[1] Сообщение на форуме Facebook

1 Ответ

1 голос
/ 21 февраля 2013

Вот соответствующая документация о Используйте токен доступа к приложению

Токены доступа к приложению следует использовать только в том случае, если функции публикации отправляются непосредственно с ваших серверов, чтобы сохранять их конфиденциальность для приложения. Например, вы не должны публиковать с помощью токена доступа к приложению из клиента, такого как собственное мобильное приложение. Это может позволить отдельным лицам получить токен доступа к приложению, который позволит им выполнять действия от имени вашего приложения. Вместо этого у вас должны быть собственные действия в очереди мобильных приложений с вашим сервером, а затем ваш сервер должен публиковать истории в Facebook с помощью токена доступа к приложению. По этой причине, если для параметра «Тип приложения» в меню «Настройки»> «Дополнительно» задано значение «Собственный / Рабочий стол», мы предполагаем, что ваше клиентское приложение содержит секретный ключ приложения или токен доступа к приложению в двоичном файле и не разрешает вызовы, подписанные с помощью Токен доступа к приложению для продолжения. API будет вести себя так, как будто токен доступа не предоставлен.

Источник

Также о Получение токена доступа к приложению :

Поскольку для этого требуется, чтобы вы включили свой секрет приложения, вы не должны пытаться сделать этот вызов на стороне клиента, так как это откроет этот секрет всем пользователям вашего приложения. Важно, чтобы ваш App Secret никогда не передавался никому. По этой причине этот вызов должен выполняться на стороне сервера [...]

Источник

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