我已经爬到周围很多不同的答案,但我还是有点困惑与我应该如何与Facebook 访问令牌来处理。 其中一个我在的主要问题是由于被存储在浏览器中的信息。 例如,我登录到应用程序时,令牌到期,除非我清除cookies在浏览器/应用程序设置我无法再次登录。
我碰到这个线程跌跌撞撞: 如何延长访问令牌的有效性,因为offline_access弃用
这表明我如何通过PHP创建一个扩展的访问令牌。
我的问题是:
1.我需要存储的访问令牌地方?
2.当访问令牌过期或无效,会发生什么? 此刻,我的应用程序只是停止时,短期访问那些过期的工作。
3.是否有办法,我应该处理它们,以检查他们是否过期? 我使用的PHP SDK和已基本使用的标准,如果($用户)......像这样:
require 'sdk/src/facebook.php';
$facebook = new Facebook(array(
'appId' => 'XXXXXXXXXXXXXXXXXXXXX',
'secret' => 'XXXXXXXXXXXXXXXXXXXXX',
));
$user = $facebook->getUser();
if( $user ){
try{
$user_profile = $facebook->api('/me');
} catch (FacebookApiException $e) {
error_log($e);
$user = null;
}
}
if (!$user){
$params = array(
'scope' => 'email',
);
$loginUrl = $facebook->getLoginUrl( $params );
echo '<script type="text/javascript">
window.open("'. $loginUrl .'", "_self");
</script>';
exit;
}
if( $user ){
$access_token = $facebook->getExtendedAccessToken();
$get_user_json = "https://graph.facebook.com/me?access_token="
. $access_token;
// Rest of my code here...
}
- 还有什么我应该做处理令牌?
。 我应该页面之间传递的访问令牌还是确定,只是在这样每个页面的顶部再次调用它:
$facebook = new Facebook(array(
'appId' => 'XXXXXXXXXXXX',
'secret' => 'XXXXXXXXXXXX',
'redirect_uri' => 'http://localhost:8000/',
));
$token = $facebook->getExtendedAccessToken();