как использовать Facebook логин API - PullRequest
2 голосов
/ 29 декабря 2011

Я использую API входа в Facebook для входа на мой сайт.

 <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 голосов
/ 29 декабря 2011

Вот простая 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']);

}

Надеюсь, это поможет ...

...