Facebook登录:如何将JavaScript与PHP SDK 3.2.2相结合?
我在这里描述了相同的问题: 同时(这个问题的解决方案是一年前提出的)来自facebook和javascript的PHPSDK已经更新,但我仍然遇到同样的问题 以下是我的设置: JS: 函数populateThis()应完成以下工作:Facebook登录:如何将JavaScript与PHP SDK 3.2.2相结合?,javascript,php,facebook,facebook-graph-api,Javascript,Php,Facebook,Facebook Graph Api,我在这里描述了相同的问题: 同时(这个问题的解决方案是一年前提出的)来自facebook和javascript的PHPSDK已经更新,但我仍然遇到同样的问题 以下是我的设置: JS: 函数populateThis()应完成以下工作: $uid = self::$facebook->getUser(); if ($uid) { $result = self::$facebook->api(array(
$uid = self::$facebook->getUser();
if ($uid) {
$result = self::$facebook->api(array(
'method' => 'fql.query',
'query' => 'SELECT uid, name, email FROM user WHERE uid = me()'
));
if (is_array($result) && isset($result[0])) {
foreach ($result[0] as $key => $value){
$this->$key = $value;
}
$this->isLogged = true;
}else{
$this->isLogged = false;
}
}
但是getUser()也让我失望
我必须说,我现在只在Google Chrome上遇到了这个问题,我曾尝试在opera、firefox上这样做,但它们的反应很好。在Google Chrome上,控制台上显示了什么错误?控制台中没有错误,也没有登录到apache,我在日志中没有看到sdk记录的任何错误,这很可能是Chrome不接受JSSDK设置的cookies的问题,所以请检查一下。你认为我应该遵循哪些cookies?我扩展了我的调试,发现如果签名的请求保存在cookie上,那么身份验证就可以工作,但不知怎么的,问题可能比这更大。我投票结束这个问题,因为使用了过时的API
self::$facebook = new Facebook(array(
'appId' => self::APP_ID,
'secret' => self::SECRET,
'cookie' => true,
'sharedSession' => true //i really don't know if this has any effect
));
$this->accessToken = self::$facebook->getAccessToken();
if ($this->accessToken) {
self::$facebook->setExtendedAccessToken($this->accessToken);
}
$this->populateThis();
$uid = self::$facebook->getUser();
if ($uid) {
$result = self::$facebook->api(array(
'method' => 'fql.query',
'query' => 'SELECT uid, name, email FROM user WHERE uid = me()'
));
if (is_array($result) && isset($result[0])) {
foreach ($result[0] as $key => $value){
$this->$key = $value;
}
$this->isLogged = true;
}else{
$this->isLogged = false;
}
}