Отправить на фан-страницу без offline_access используя Graph API? - PullRequest
3 голосов
/ 23 февраля 2012

Мне нужно создать веб-приложение для управления сообщениями, когда иногда создается сообщение, я должен опубликовать краткое рекламное сообщение на одной из фан-страниц компании на Facebook (в зависимости от критериев для сообщения).

Этопрямо сейчас возможно с использованием разрешения offline_access: создайте приложение A, запросите разрешения manage_pages, offline_access, publish_stream и с этим токеном доступа вы сможете подключиться, когда захотите к api графа и опубликовать на странице.устарела и будет удалена в мае 2012 г. Мне было интересно, как можно было бы публиковать на разных страницах компании.

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

Обходное решение, которое я нашел, - это публикация на страницеопубликовав на тОн управляет пользовательским потоком и маркирует страницу (для этого потребуется только publish_stream), но Graph API содержит ошибки и не позволяет добавлять теги к сообщениям.В коде (Ruby + Koala) это будет примерно так:

oauth = Koala::Facebook::OAuth.new("app-key", "app-secret", nil)
api = Koala::Facebook::API.new(oauth.get_app_access_token)
api.put_wall_post("message @[page-id:1:page-name]", {}, "admin-user")

Единственная проблема - ошибка в API Facebook не позволяет вам помечать вещи в постах в вашей ленте.

Эта модель больше не будет поддерживаться?Кто-нибудь знает какие-либо обходные пути?

Ответы [ 2 ]

2 голосов
/ 27 июня 2012

Вы можете увеличить 2 столбца таблицы в своем приложении, а именно: short_access_token & long_access_token.

Как только пользователь аутентифицирует ваше приложение, генерируется токен доступа, сохраните его в short_access_token. Затем передайте этот токен доступа:

https://graph.facebook.com/oauth/access_token? client_id = APP_ID & client_secret = APP_SECRET & grant_type = fb_exchange_token & fb_exchange_token = EXISTING_ACCESS_TOKEN

После запуска будет сгенерирован токен доступа сроком действия 60 дней. Сохраните его в long_access_token. Теперь используйте этот long_access_token в течение 60 дней.

Вы можете добавить еще одно условие, при котором, если long_access_token был сгенерирован более 30 дней назад, просто возьмите short_access_token и сгенерируйте новый lon_access_token.

Вы можете сгенерировать долгосрочный токен доступа только один раз в день, т.е. в первый раз. Используйте этот долговременный токен доступа для управления paes (если у вас уже есть разрешение).

Ссылка: https://developers.facebook.com/roadmap/offline-access-removal/

0 голосов
/ 23 февраля 2012

Единственный обходной путь, который у вас есть, - предоставить администратору страницы пользователя приложения доступ к различным страницам, поэтому, когда вы публикуете сообщение на стене страницы, его можно публиковать как страницу, а не как сообщение пользователя. Однако вы сможете продлить срок действия «действительного» токена пользователя только до 60 дней в соответствии с новыми правилами Facebook. Но с этим пользовательским токеном на 60 дней вы можете получить токен доступа на 60 страниц, чтобы вы могли публиковать его как страницу на странице.

Если у вас нет необходимости размещать страницу как страницу, сделать это довольно просто, не назначая этого пользователя администратором страницы. Просто позвольте им быть обычным пользователем.

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