我正在使用 facebook 进行身份验证并借给他们某些权利。我正在使用 Zend 框架,并将此代码放在函数内的引导类中
initFacebook(){
$db = Application_Model_DB::create();
$db->setTable('users');
Zend_Session::start();
$facebookuser = new Zend_Session_Namespace('facebookUser');
include('../library/Facebook/facebook.php');
$facebook = new Facebook(array(
'appId' => '282270168507838',
'secret' => '*cencor*',
));
$accesstoken = $facebook->getAccessToken();
try {
$user_profile = $facebook->api('/me?accesstoken='.$accesstoken);
$user = $facebook->getUser();
$fbname = $user_profile['name'];
$result = $db->fetchAllAsArray('fbid = "'.$user.'"');
if (count($result) == 0) {
$db->save(array('fbid'=>$user,'status'=>'standard','name'=>$fbname));
}
else {
$facebookuser->status = $result[0]['status'];
$facebookuser->fbname= $result[0]['name'];
$facebookuser->fbuser = $result[0]['fbid'];
}
} catch (Exception $e) {
$user = 0;
$facebookuser->error = $accesstoken;
$facebookuser->unsetAll();
}
}
但这仅适用于大约 10 分钟到几个小时。
在http://www.nicomollema.nl/我有一个演示,我使用 de PHP SDK 进行服务器端编码,我使用 de javascript sdk 生成登录/注销按钮。
当我检查它给我的错误是:必须使用活动访问令牌来查询有关当前用户的信息。
但正如你所看到的那样:$accesstoken = $facebook->getAccessToken(); 获取accesstoken,怎么会失效呢?