我正在使用facebook进行身份验证,并借给他们特定的权限。我正在使用Zend框架,并将以下代码放在我的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分钟到几个小时。
在http://www.nicomollema.nl/上,我有一个演示,我使用de PHP SDK进行服务器端编码,并使用de javascript sdk生成登录/注销按钮。
当我检查时,它给我的错误是:必须使用活动的访问令牌来查询有关当前用户的信息。
但是正如您所看到的,我这样做了:$accesstoken = $facebook->getAccessToken();来获取accesstoken,那么它怎么可能是无效的呢?
发布于 2012-09-07 01:50:38
我犯了一个严重的错误:我在PHP中使用了一个与JavaScript SDK中不同的APPID。当然,这些必须是相同的。
https://stackoverflow.com/questions/12290297
复制相似问题