Facebook Graph API — использование «токена доступа к приложению» для получения фидов страницы Facebook (решение)

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

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

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

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

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

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

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


person alkber    schedule 25.02.2012    source источник
comment
Что вам нужно, так это access_token для страницы facebook - прочитайте это о том, как получить этот stackoverflow.com/questions/9395356/ - тогда просто используйте graph api, как если бы вы получали каналы для обычного пользователя (используя идентификатор страницы facebook и данный токен доступа)   -  person scibuff    schedule 26.02.2012
comment
хвалю вас, appType имеет значение. Я пытался получить необработанные данные JSON из различных общедоступных каналов, но с 2012 года для этого требовался токен пользователя, срок действия которого истекал через 60 дней, таким образом, просто используя appID+appSecret->appToken, я снова мог получить простой доступ к общедоступным данным Facebook :-)   -  person PetrV    schedule 18.07.2012


Ответы (1)


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

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

Источник

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

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

Источник

person user362515    schedule 21.02.2013