#facebook #api #subscriptions
#Facebook #API #Подписки
Вопрос:
Я пытаюсь использовать обновления Facebook в реальном времени, как описано здесь . Я использую PHP SDK. У меня уже есть токен доступа, который работает для других функций с этими разрешениями: usser_checkins, publish_stream, offline_access.
При попытке добавить подписку я получаю следующую ошибку из Facebook SDK.
Неустранимая ошибка: неперехваченное исключение OAuthException: (# 15) Этот метод должен вызываться с помощью приложения access_token
Код, который я использую, приведен ниже. Все переменные установлены правильно. Есть идеи?
$callback_url = plugins_url('fb_callback.php',__FILE__);
$config = array('appId' => $app_id,
'secret' => $app_secret,
);
$facebook = new Facebook($config);
$token = fb_get_access_token();
$facebook->setAccessToken($token);
$ret_obj = $facebook->api($app_id . '/subscriptions', 'POST',
array('callback_url' => $callback_url,
'object' => 'checkin',
'verify_token' => 'a390jkl091091j908j',
'fields' => 'id'
));
Комментарии:
1. Что
fb_get_access_token()
делать? Не возражаете поделиться кодом?
Ответ №1:
Я написал сообщение с моим решением этой проблемы с помощью примера кода:
http://marcneuwirth.com/blog/2011/12/08/facebook-real-time-updates/
Надеюсь, это поможет.
Ответ №2:
У меня была похожая проблема. Не уверен, что он такой же, как у вас. Но токен доступа к приложению возвращается, как и ожидалось, только в том случае, если URI запроса не имеет «области видимости» в строке запроса. Другими словами, это должно быть точно:
https://graph.facebook.com/oauth/access_token?client_id=YOUR_APP_IDamp;client_secret=YOUR_APP_SECRETamp;grant_type=client_credentials
Если он отличается от приведенного выше, он вернет токен доступа пользователя, даже с amp;grant_type=client_credentials