2013-10-08 2 views
2

Там есть аналогичный вопрос по адресу:. Asking for permission using new PHP SDK (3.X.X), но не решает мою проблемуFacebook PHP API «пользователь не авторизован приложение»

Мое приложение является приложением Facebook Tab (Forum), который разрешает пользователям FB быть возможность опубликовать на форуме. До сих пор так хорошо. Авторизация работает нормально. Теперь я хочу немного расширить свое приложение, чтобы пользователь, подписавшийся на нить, приложение, чтобы иметь возможность отправлять сообщения на их временной шкале.

Я пытаюсь в качестве теста:

require_once('./includes/facebook.php'); 
$facebook = new Facebook(array(
    'appId' => $CFG["appid"], 
    'secret' => $CFG["appsecret"], 
    'oauth' => true, 
    'scope' => 'status_update,publish_stream,publish_actions', 
    'cookie' => true 
)); 
$facebookid = ''; 
$facebookid = $facebook->getUser(); 
if (!empty($facebookid)) 
{ 
    $facebook_info = array(); 
    $facebook_info=$facebook->api('/me'); 
    $facebook->api('/me/feed', 'POST', 
           array(
            'link' => 'www.example.com', 
            'message' => 'Posting with the PHP SDK!' 
          )); 

}

Но это дает ошибку: Fatal error: Uncaught OAuthException: (# 200) Пользователь не разрешил приложению выполнять это действие в/home/facebook/public_html/demo/forum/includes/base_facebook. php on line 1271

Любая идея о том, что я делаю неправильно? Обратите внимание, что я попытался добавить те же разрешения в настройках приложения (developers.facebook.com), но снова мне не повезло. Наверняка я что-то пропустил, но что это?

Спасибо

+0

Вы уже перенаправили пользователя на facebook, чтобы они могли принимать разрешения, предоставленные вашему приложению? – Luke

+0

оберните свой код внутри try {} catch (Exception $ e) {} – Shushant

+0

'scope' не является параметром для инициализации SDK, это параметр для потока входа. Если вы не знаете, как работает этот материал, прочитайте его в документах. – CBroe

ответ

0

base_facebook.php, вместе с кодом you'er использования, заставляет меня думать, что вы используете библиотеку Facebook PHP-SDK. publish_stream и publish_actions теперь одно и то же, поэтому вы можете пропустить это. status_update Я никогда не видел. Чтобы опубликовать статус, вам нужно только publish_actions. Убедитесь, что вы используете обновленную библиотеку (время от времени она обновляет ее), которую можно загрузить на github. Эта библиотека дала мне аналогичную ошибку, и я не мог понять причину, поэтому я написал свой собственный процесс аутентификации, что не так сложно. На данный момент все, что приходит мне на ум, заключается в том, что вы должны проверить разрешения, которые вы задаете, проверить, разрешено ли пользователю приложение (эта библиотека делает это с getUser();) и проверьте, что у вас установлена ​​последняя версия библиотеки. Если все пошло не так, попробуйте с помощью простого URL-адреса auth и отладки, распечатав то, что вы получаете от API. Кроме того, постарайтесь убедиться, что URL-адрес обратного вызова всегда один и тот же. Надеюсь, это поможет ...

Смежные вопросы