如何处理facebook api php sdk登录时过期的访问令牌?
如何确定访问令牌是否已过期?上一天,我能够根据下面的代码显示信息,但当我在第二天检查时,它不会重定向到facebook。是因为访问令牌吗?请帮忙。多谢各位如何处理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 = $
// 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);