如何使用facebook登录api


how to use facebook login api

我使用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']);
}