Ошибка разрешений Facebook 200

Мы создали приложение, которое имеет следующие разрешения:

"Информация о приложении": в режиме реального времени "Страница статуса и обзора": в режиме реального времени

Имеет следующие разрешения:

  • Детали приложения - английский (Великобритания)

  • Эл. адрес

  • manage_pages

  • общедоступный профиль

  • publish_actions

  • user_friends

Опять все одобрено.

Так почему же это может быть связано с тем, что приложение сообщает об ошибках и возвращает следующую ошибку: "(#200) Permissions error".

Мы не можем видеть для жизни нас то, что мы могли бы упустить. Это приложение v2, созданное в прошлом месяце.

Спасибо

Antony

3 ответа

Решение

Хорошо, я не могу претендовать на кредит этого, это был коллега, но проблема была в том, что старый SDK вызывал getLoginUrl. Эта функция имеет разрешения FB как часть вызова, который изменился - у нас был publish_stream, но теперь нам нужно publish_actions. Спасибо за помощь, и я надеюсь, что кто-то найдет это полезным.

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

Вы можете проверить все URL, токены доступа или идентификаторы действий Open Graph с помощью отладчика Facebook: https://developers.facebook.com/tools/debug

Если вы введете здесь свой токен доступа, вы сможете увидеть, какие разрешения дает пользователь. Вы также можете позвонить /me/permissions чтобы увидеть, какие разрешения дает пользователь, вы можете найти документацию по этому вопросу здесь: https://developers.facebook.com/docs/graph-api/reference/v2.0/user/permissions

При публикации на СТРАНИЦАХ НЕ ПОЛЬЗОВАТЕЛИ. Три вещи, которые могут сбить вас с толку....

  1. Вам потребуются разрешения: pages_show_list, manage_pages, publish_pages в консоли разработчика: https://developers.facebook.com/apps

  2. Вам нужно будет определить область действия при выполнении oauth как:

    args = {'redirect_uri': ' http://www.yourdomain.com/facebook/callback/', 'client_id': settings.FACEBOOK_ID, 'scope': 'public_profile, pages_show_list, manage_pages, publish_pages',} return HttpResponseRedirect ("% s?% s"% (' https://www.facebook.com/dialog/oauth', urllib.urlencode (args)))

  3. Вам нужно будет использовать СТРАНИЦУ ДОСТУПА, а не ПОЛЬЗОВАТЕЛЬСКИЙ ЖЕЛЕЗ. Чтобы получить знак доступа к странице, вам нужно позвонить:

https://graph.facebook.com/me/accounts/?

Который вернет имя, идентификатор и токен доступа (это первая страница).

  1. Затем сделайте пост, используя СТРАНИЦУ ДОСТУПА:

    args = {'access_token': self.facebook_page_token} if message: args['message'] = сообщение if link: args['link'] = ссылка if name: args['name'] = name if picture: args[' изображение '] = изображение, если заголовок: args[' заголовок '] = заголовок, если место: args[' место '] = место ответа = json.loads (urllib.urlopen (" https://graph.facebook.com/%s/feed/"% self.facebook_page_id, urllib.urlencode (args)). read ())

Это хорошо идти. Вам НЕ НУЖНО publish_actions для публикации страницы.

Другие вопросы по тегам