我在网站上使用 Facebook 的 FB 连接和登录按钮。
我使用它登录,然后在登录时,我重新加载页面,我试图在 PHP 中获取具有 access_token 的 cookie,但没有这样做。以下是我的js代码:
window.fbAsyncInit = function() {
FB.init({
appId : 'xxxxxxxx',
status : true,
cookie : true,
xfbml : true,
oauth : true
});
FB.Event.subscribe('auth.login', function(response) {
window.location.reload();
});
};
(function(d){
var js, id = 'facebook-jssdk'; if (d.getElementById(id)) {return;}
js = d.createElement('script'); js.id = id; js.async = true;
js.src = "//connect.facebook.net/en_US/all.js";
d.getElementsByTagName('head')[0].appendChild(js);
}(document));
FB登录按钮代码:
<div class="fb-login-button" scope="email,user_checkins" >Login with Facebook</div>
现在,当用户使用 facebook 登录时,我尝试使用 access_token 获取其数据,但没有从 cookie 中获取该 access_token。我正在使用以下代码:
$cookie = $this->get_facebook_cookie(APP_ID, APP_SECRET);
echo $cookie['access_token'];
if(isset($cookie['access_token'])){
$user = json_decode(@file_get_contents('https://graph.facebook.com/me?access_token=' .$cookie['access_token']));
echo $user->id;
if(isset($user->id)){
// my stuff
}
}
我怀疑它甚至没有得到饼干。虽然它在客户端登录。那么我怎样才能在 PHP 中获取数据呢?还需要在 PHP 端再次重复整个登录过程吗?我该如何处理?