Используя PHP PHP SDK, я получаю следующую ошибку при попытке опубликовать обновление статуса:
Fatal error: Uncaught OAuthException: (# 200) Пользователь не разрешил приложению выполнять это действие
- Как использовать заголовок авторизации PHP
- Вход FB с помощью oauth-5-laravel Не удалось запросить ресурс. Код HTTP: нет ответа
- Как получить пользовательский токен доступа и секрет доступа с помощью API Twitter с помощью php
- Руководство по внедрению сервера Oauth2 PHP с использованием библиотеки
- Запросить токен OAuth от BitBucket
Это шаги, которые я предпринял:
Получить код:
https://graph.facebook.com/oauth/authorize?client_id=FB_APP_ID&redirect_uri=REDIRECT_URI
Получить токен доступа:
https://graph.facebook.com/oauth/access_token?client_id=FB_APP_ID&code=CODE&client_secret= FB_SECRET&redirect_uri=REDIRECT_URI
Попытайтесь обновить статус:
require_once(facebook.php); $fb = new Facebook(array( 'appId' => FB_APP_ID, 'secret' => FB_SECRET )); $post = $fb->api('me/feed', 'POST', array( 'access_token' => ACCESS_TOKEN, 'message' => 'hello world!' ));
Я не вижу никаких настроек в своем приложении, которые разрешали бы приложение делать это, но, возможно, я чего-то не хватает. Какие-либо предложения?
Убедитесь, что вы запрашиваете расширенное разрешение publish_stream
при запросе кода (добавленном в качестве третьего параметра):
https://graph.facebook.com/oauth/authorize?client_id=' . FB_APP_ID . '&redirect_uri=' . REDIRECT_URI . '&scope=publish_stream'
Надеюсь это поможет.
Ура!
У меня была такая же проблема, и эта почта действительно помогла мне выйти на сайт http://facebook.stackoverflow.com/a/8502709/965536
Единственная разница с моей проблемой заключалась в том, что я использовал PHP SDK, но по сути он работает одинаково. Я использовал вызов api
$permissions = $facebook->api('/me/permissions');
Затем вы можете запустить свои проверки
if(isset($permissions['data'][0]['publish_stream']) && $permissions['data'][0]['publish_stream'])
Это работает для меня, но у кого-то может быть лучший ответ. Также вы должны обернуть свой поток публикации публикации в попытке поймать
Надеюсь это поможет.
благодаря
Я добавил здесь дополнительную информацию:
Ответ Марка, приведенный выше, привел меня в правильном направлении. Но мне понадобилось еще 5 часов, чтобы выяснить решение.
Итак, вот результат для omniauth.rb:
provider :facebook, ENV['FACEBOOK_KEY'], ENV['FACEBOOK_SECRET'], :scope => 'email,user_birthday,publish_actions'
Вы предприняли другие шаги, необходимые для подключения пользователя к вашему приложению и заставить их разрешить ваше приложение выполнять эти действия? Вам необходимо зарегистрировать пользователей, а затем вызвать showPermissionDialog, чтобы они входили в систему и авторизировали ваше приложение. Вот что говорит эта ошибка.