我正在使用Facebook进行身份验证并向他们提供某些权利。 我使用Zend Framework并在函数
中的bootstrap类中使用此代码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分钟到几个小时。
on http://www.nicomollema.nl/我有一个演示,我使用de PHP SDK进行服务器端编码,我使用de javascript sdk生成登录/注销按钮。
当我检查错误时,它给出的是:必须使用活动访问令牌来查询有关当前用户的信息。
但正如你所看到的那样:$ accesstoken = $ facebook-> getAccessToken();获得accessstoken,那怎么可能无效?
答案 0 :(得分:0)
我犯了一个大错:我在JavaScript SDK中使用了与PHP SDK中不同的APPID。当然,这些必须是相同的。