Facebook access_token пуст - PullRequest
       7

Facebook access_token пуст

0 голосов
/ 14 июля 2011

Я пытаюсь получить список друзей и получаю эту ошибку:

Fatal error: Uncaught OAuthException: An active access token must be used to query information about the current user. thrown in /server/url/base_facebook.php on line 970

Это код, который я использую:

$facebook = new Facebook(array(
  'appId'  => $appID,
  'secret' => $appSecret,
  'cookie' => true, // enable optional cookie support
));
$result = $facebook->api('/me/friends/',array('access_token' => $facebook->access_token));

Вот данные, которые я получаю в переменной $ facebook:

 Facebook Object
(
    [appId:protected] => 220........
    [apiSecret:protected] => 2162e6c1b771......
    [user:protected] => 
    [signedRequest:protected] => 
    [state:protected] => 894ad3b36c2ebdcbcf6d4f110641dd4f
    [accessToken:protected] => 
    [fileUploadSupport:protected] => 
)

По какой-то причине access_token пуст. Работало нормально и внезапно прекратилось ... Приложение уже имеет разрешения, и я использую последнюю версию PHP SDK v3.0.1

Пожалуйста, помогите мне ... Я схожу с ума от этой проблемы ...

Спасибо, Бар.

Ответы [ 3 ]

0 голосов
/ 14 июля 2011

Похоже, вам сначала нужно проанализировать подписанный запрос, это приложение iframe или веб-сайт?

, если это приложение iframe и пользователь уже авторизован

, попробуйте это.

public function parse_signed_request($signed_request)
{

   list($encoded_sig, $payload) = explode('.', $signed_request, 2);

   $sig = $this->base64_url_decode($encoded_sig);
   $data = json_decode($this->base64_url_decode($payload), true);

   if(strtoupper($data['algorithm']) !== 'HMAC-SHA256') {
       throw new Exception('bad algorithm');
   }

  $expected_sig = hash_hmac('sha256', $payload, $this->app_secret, $raw = true);

   if($sig !== $expected_sig) {
      throw new Exception('Bad signed JSON');
   }

  return $data;

}

это проанализирует подписанный запрос.

после того, как вы получите данные var_dump и в нем вы увидите oauth_token ....

 private function base64_url_decode($input) {
    return base64_decode(strtr($input, '-_', '+/'));
 }
0 голосов
/ 18 декабря 2017

Вы должны добавить $this->load->library('facebook'); в конструктор.

0 голосов
/ 14 июля 2011

Вам необходимо обновить SDK до версии 3.0:

https://github.com/facebook/php-sdk

Редактировать: Поскольку вы используете v.3.0, ваша конструкция неверна .. больше нет параметра $ cookie для конструктора. Предлагаю пересмотреть документацию.

...