Как мне определить, есть ли активный токен доступа к facebook?

#php #facebook-graph-api #facebook-php-sdk

#php #facebook-graph-api #facebook-php-sdk

Вопрос:

Я использую PHP Facebook 3.0 SDK для graph API и хочу простой способ узнать, есть ли в настоящее время активный токен, чтобы я мог корректно обрабатывать ошибки.

getUserAccessToken() это защищенный метод, и поэтому я не могу получить к нему доступ с помощью объекта facebook. Должен быть простой способ сделать

 if(active token){ do stuff} else{ don't}
  

Кому-нибудь помочь?

Ответ №1:

Пример Facebook PHP SDK содержит весь код, который вам нужен для этого:

 <?php
require '../src/facebook.php';

$facebook = new Facebook(array(
  'appId'  => '',
  'secret' => '',
));

$user = $facebook->getUser();

if ($user) {
  try {
    $user_profile = $facebook->api('/me');
  } catch (FacebookApiException $e) {
    error_log($e);
    $user = null;
  }
}
?>
  

Ответ №2:

Возможно, вы можете использовать этот тип кода:

 $data=file_get_contents('https://graph.facebook.com/me?access_token=xxx');
foreach ($http_response_header as $rh) if (substr($rh, 0, 4)=='HTTP') list(,$status,)=explode(' ', $rh, 3);
if ($status==200 amp;amp; $data)
    //Token is good, parse data
else
    //Token is no good
  

Ответ №3:

Попробуйте это:

 try {
    $User = $Facebook->api('/me');
} catch(Exception $e) {
    echo 'No active token.';
    echo $e->getMessage();
}