我遇到了同样的问题:Facebook Login: How to combine JavaScript with PHP SDK?
同时(这个问题的解决方案是一年前提出的)来自facebook和javascript的php-sdk已经更新,但我仍然遇到了同样的问题。
这是我的设置:
JS:
FB.init({
appId: '<MyAppID>',
status: true,
cookie: true,
xfbml: true,
channelUrl: '<MyUrl>'
});
PHP:
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();
函数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;
}
}
但是getUser()也让我失望了......
我必须说我现在只在谷歌Chrome上遇到这个问题,我试图在歌剧,firefox中做这个,但那些反应很好。