如何处理facebook api php sdk登录时过期的访问令牌?

如何处理facebook api php sdk登录时过期的访问令牌?,php,facebook,facebook-graph-api,access-token,Php,Facebook,Facebook Graph Api,Access Token,如何确定访问令牌是否已过期?上一天,我能够根据下面的代码显示信息,但当我在第二天检查时,它不会重定向到facebook。是因为访问令牌吗?请帮忙。多谢各位 // Get User ID Facebook::$CURL_OPTS[CURLOPT_SSL_VERIFYPEER] = false; Facebook::$CURL_OPTS[CURLOPT_SSL_VERIFYHOST] = 2; $user = $facebook->getUser(); $token = $

如何确定访问令牌是否已过期?上一天,我能够根据下面的代码显示信息,但当我在第二天检查时,它不会重定向到facebook。是因为访问令牌吗?请帮忙。多谢各位

  // Get User ID
  Facebook::$CURL_OPTS[CURLOPT_SSL_VERIFYPEER] = false;
  Facebook::$CURL_OPTS[CURLOPT_SSL_VERIFYHOST] = 2;
  $user = $facebook->getUser();
  $token = $facebook->getAcessToken();

 if ($user) {
try {

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


 if ($user) {
   $logoutUrl = $facebook->getLogoutUrl(array(
   'next'=>'http://localhost/fb/php/examples/logout.php'
  ));
}   else {
  $loginUrl = $facebook->getLoginUrl(array('scope' => 'email,read_stream'));
 }

<?php if ($user): ?>

  <a href="<?php echo $logoutUrl; ?>">Logout</a>
<?php else: ?>
  <div>

    <a href="<?php echo $loginUrl; ?>">Login with Facebook</a>
  </div>
<?php endif ?>

?></pre>

  <?php echo $user; ?>
       <pre>
  <?php 
       print_r($user_profile); 

  ?><pre>
    <pre>
    <?php 

   echo "=== LIST OF FRIENDS ===";

   echo "<br/>";
    $total_friends = count($friends['data']);

    echo 'Total friends: '.$total_friends.'.<br />';
     $start = 0;
    echo '<br />';
    while ($start < $total_friends) {

    echo $friends['data'][$start]['name'];
    ?>
   <?php 
       <img src="https://graph.facebook.com/picture"/> <?php echo $value["data"][$start]   ['name']; ?>
    <?php
    echo '<br />';
    $start++;} 
   ?></pre>


<?php else: ?>
  <strong><em>You are not Connected.</em></strong>
<?php endif ?>

</body>
</html>
//获取用户ID
Facebook:$CURL\u OPTS[CURLOPT\u SSL\u VERIFYPEER]=false;
Facebook:$CURL_OPTS[CURLOPT_SSL_VERIFYHOST]=2;
$user=$facebook->getUser();
$token=$facebook->getAcessToken();
如果($user){
试一试{
$user_profile=$facebook->api('/me');
$friends=$facebook->api('/me/friends');
} 
捕获(FacebookApiException$e){
$params = array(
  'scope' => 'read_stream',
  'redirect_uri' => 'page after login' // make sure this is full URL
);

$loginUrl = $facebook->getLoginUrl($params);
错误日志($e); $user=null; } } 如果($user){ $logoutUrl=$facebook->getLogoutUrl(数组)( '下一个'=>'http://localhost/fb/php/examples/logout.php' )); }否则{ $loginUrl=$facebook->getLoginUrl(数组('scope'=>'电子邮件,读取流'); } ?> 您没有连接。
不确定它昨天是如何工作的,而不是今天。从什么时候开始按照代码

不会返回任何用户,它只会创建登录链接,单击登录就会进入facebook登录页面

但是,在代码中缺少了一些东西,例如重定向uri,因此在调用getLoginUrl之前,应该将参数作为

现在,在顶部,您可以按如下所示设置访问令牌,以便进一步调用


另外,在使用SDK执行任何API调用之前,请确保启用了CURL。当没有明确给出重定向uri值时,getLoginUrl将自动使用当前地址。并且,
getAcessToken
/
setAcessToken
内容也不需要–
getUser
将自动填充访问令牌,如果它识别登录的用户。
$params = array(
  'scope' => 'read_stream',
  'redirect_uri' => 'page after login' // make sure this is full URL
);

$loginUrl = $facebook->getLoginUrl($params);
$user = $facebook->getUser();
$token = $facebook->getAcessToken();
$facebook->setAcessToken($token);