如何使用facebook登录api

时间:2011-12-29 16:59:38

标签: php facebook facebook-graph-api facebook-javascript-sdk

我正在使用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。

我想要一种机制,在授予权限后知道用户是否经过身份验证,然后才能访问他的信息。

1 个答案:

答案 0 :(得分:0)

这是我写的一个简单的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']);

}

我希望它有所帮助...