Facebook登录集成到localhost上的网站

时间:2014-03-10 11:26:02

标签: php jquery ajax facebook facebook-php-sdk

我的index.php文件包含:

<div id="fb-root"></div>
<script type="text/javascript">
window.fbAsyncInit = function () {
    FB.init({
        appId: '<?php echo $appId; ?>',
        cookie: true,
        xfbml: true,
        channelUrl: '<?php echo $return_url; ?>channel.php',
        oauth: true
    });
};
(function () {
    var e = document.createElement('script');
    e.async = true;
    e.src = document.location.protocol + '//connect.facebook.net/en_US/all.js';
    document.getElementById('fb-root').appendChild(e);
}());

function CallAfterLogin() {
    FB.login(function (response) {
        if (response.status === "connected") {
            LodingAnimate(); //Animate login
            FB.api('/me', function (data) {

                if (data.email == null) {
                    //Facbeook user email is empty, you can check something like this.
                    alert("You must allow us to access your email id!");
                    ResetAnimate();

                } else {
                    AjaxResponse();
                }

            });
        }
    }, {
        scope: '<?php echo $fbPermissions; ?>'
    });
}

//functions
function AjaxResponse() {
    //Load data from the server and place the returned HTML into the matched element using jQuery Load().
    $("#results").load("process_facebook.php");
}

//Show loading Image
function LodingAnimate() {
    $("#LoginButton").hide(); //hide login button once user authorize the application
    $("#results").html('<img src="img/ajax-loader.gif" /> Please Wait Connecting...');
}

//Reset User button
function ResetAnimate() {
    $("#LoginButton").show(); //Show login button 
    $("#results").html(''); //reset element html
}
</script>

process_facebook.php include


      if(!empty($_SERVER['HTTP_X_REQUESTED_WITH'])&&strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest' )
    {       

    //initialize facebook sdk
$facebook = new Facebook(array(
    'appId' = > $appId,
    'secret' = > $appSecret, ));

$fbuser = $facebook - > getUser();

if ($fbuser) {
    try {
        // Proceed knowing you have a logged in user who's authenticated.
        $me = $facebook - > api('/me'); //user
        $uid = $facebook - > getUser();
    } catch (FacebookApiException $e) {
        //echo error_log($e);
        $fbuser = null;
    }
}

// redirect user to facebook login page if empty data or fresh login requires
if (!$fbuser) {
    $loginUrl = $facebook - > getLoginUrl(array('redirect_uri' = > $return_url, false));
    header('Location: '.$loginUrl);
}

//user details
$fullname = $me['first_name'].' '.$me['last_name'];
$email = $me['email'];
/* connect to mysql using mysqli */
$mysqli = new mysqli($hostname, $db_username, $db_password, $db_name);
if ($mysqli - > connect_error) {
    die('Error : ('.$mysqli - > connect_errno.') '.$mysqli - > connect_error);
}
//Check user id in our database 
$UserCount = $mysqli - > query("SELECT COUNT(id) as usercount FROM usertable WHERE fbid=$uid") - > fetch_object() - > usercount;

在此之后,它将只从数据库检查并插入和更新。在本博客中仍然按照所有步骤进行操作:http://www.sanwebe.com/2012/05/ajax-facebook-connect-with-jquery-php

我遇到了问题。当我从Facebook登录时,它继续加载不再发生任何事情,即用户数据无法显示。所以请提供解决方案,以便我可以显示和存储Facebook用户数据。

1 个答案:

答案 0 :(得分:2)

在应用信息中心的应用设置中,您可以将网站网址写为 -

http://localhost/HarshTest/

然后在你的应用程序(即/HarshTest/index.php)中,你可以尝试登录facebook,它会起作用。


enter image description here

相关问题