我使用Facebook登录api登录到我的网站。
<div id="fb-root"></div>
<script>
window.fbAsyncInit = function() {
FB.init({
appId : 'My_app_id',
status : true,
cookie : true,
xfbml : true,
oauth : true,
});
};
(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));
</script>
<div class="fb-login-button" data-scope="email,user_birthday">
Login with Facebook
</div>
我使用这个代码从Facebook进行身份验证。但是,在用户允许权限之后,如何从设置的cookie中获取用户的信息,以及我如何知道用户允许或不允许权限。我的网站是基于php.
我想要一种机制,在授予权限后知道用户是否经过身份验证,然后访问他的信息。
下面是我编写的用于登录的简单PHP函数:
function login($app_id, $post_login_url){
$dialog_url= "http://www.facebook.com/dialog/oauth?"
. "client_id=" . $app_id
. "&redirect_uri=" . urlencode($post_login_url)
. "&scope=publish_stream,user_photos";
echo("<script>top.location.href='" . $dialog_url .
"'</script>");
}
这里有一个简单的函数来获取访问令牌,代码在URL中返回:
function getAccessToken($app_id, $post_login_url, $app_secret, $code){
$token_url= "https://graph.facebook.com/oauth/"
. "access_token?"
. "client_id=" . $app_id
. "&redirect_uri=" . urlencode( $post_login_url)
. "&client_secret=" . $app_secret
. "&code=" . $code;
$response = file_get_contents($token_url);
$params = null;
parse_str($response, $params);
return($params['access_token']);
}