Проблемы с PHP API Facebook при подписке

#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