0

我想实现网站上常见的“使用 Facebook 登录”,但我无法理解整个概念,如果有人能帮助我解决这个问题,我将不胜感激。

几天来,我一直在阅读此链接https://developers.facebook.com/docs/facebook-login/下的文档,但我仍然没有“得到它”。

让我们从...

在文档中,它说 JS SDK 最容易使用(我不知道),但我认为 NON JS 版本会更好更快(并且更容易掌握)但我不知道该怎么做做。我“卡住了”

我的主要问题是我不明白我应该如何将自动递增 ID 以及该人的名字和姓氏插入到我的数据库中。Facebook 代码中没有任何地方或没有地方可以指定数据库、表或列,那么这些数据应该如何进入我的数据库以登录用户?

我的网站上有一个分类广告,我正在尝试为其创建一个 FB 登录信息,但正如我上面所说,我被困住了,可以使用帮助,因为我对 PHP 和 MySql 的知识只有中等水平

4

1 回答 1

0

就像评论中讨论的那样,这里是使用 JS SDK 的示例

<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <script src="//ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script> <!-- jQuery library, makes things easier. -->
        <title>FB example</title>
    </head>
    <body>
    <div id="fb-root"></div>
    <script>
        window.fbAsyncInit = function() {
            // init the FB JS SDK
            FB.init({
                appId      : YOUR_APP_ID,                        // App ID from the app dashboard
                status     : true,                                 // Check Facebook Login status
                xfbml      : true                                  // Look for social plugins on the page
            });
// Additional initialization code such as adding Event Listeners goes here
    };

    // Load the SDK asynchronously
    (function(d, s, id){
        var js, fjs = d.getElementsByTagName(s)[0];
        if (d.getElementById(id)) {return;}
        js = d.createElement(s); js.id = id;
        js.src = "//connect.facebook.net/en_US/all.js";
        fjs.parentNode.insertBefore(js, fjs);
    }(document, 'script', 'facebook-jssdk'));


    /*
        This function gets information about user and alrets user's name.
     */
    function getUserInfo() {
    FB.api('/me', function(response) {
        $.ajax({
            url: "ajax.php", //url to send ajax request to
            data: {
                json: response, // Key => value pairs of items to send
            },
            success: function(ajaxResponse) { // upon successful request
                alert(ajaxResponse); //Alert whatever response we got.
            }
        })
    })
}

    /*
        This function gets the login status of user
     */
    function getLoginStatus() {
        FB.getLoginStatus(function(response) {
            if (response.status === 'connected') { //User is connected to Facebook and authorized your app
                getUserInfo();
            } else if (response.status === 'not_authorized') { //User is connected to Facebook, but hasn't authorized your app
                login();
            } else { //User is not connected to Facebook
                login();
            }
        });
    }

    /*
        Function promts user to log in and asks for permissions
     */
    function login() {
        FB.login(function(response) {
            if (response.authResponse) {
                getUserInfo();
            } else {
                alert('User cancelled login or did not fully authorize.');
            }
        }, {scope: 'email'}); // Comma separated permissions
    }

</script>

<a href="javascript:getLoginStatus()"/>Login</a>

</body>
</html>

这是一个非常简单的例子。在页面上,您将看到链接“登录”。按下它后,您将被要求登录(如果您尚未登录 Facebook,或者您尚未授权应用程序),或者它将显示带有您姓名的弹出窗口。大部分代码取自JavaScript SDK 文档

编辑:

要将用户的数据添加到您的数据库中,我建议从该getUserInfo()函数进行 AJAX 调用。将警报部分替换为对某个 php 文件的 ajax 调用,您将创建该文件并将其传递给response变量中的数据(其中包含有关用户的数据,例如response.nameresponse.email)。在 php 文件本身中,将您获得的信息插入数据库。

另一个编辑:

我再次更新了代码,即我添加了 jQuery 库(我更容易在其中进行 ajax 调用,尽管它与普通 JS 没有太大区别)。

<script src="//ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>

并更新getUserInfo()了向ajax.php.

ajax.php我只做了一行:

print_r($_REQUEST['json']);

这将简单地打印出通过 ajax 发送的任何数据,您将在弹出窗口中看到它。下一步将检查您获得的信息,并获取您需要的任何信息(它$_REQUEST['json']是简单的数组),并将其插入到 db.xml 中。

于 2013-05-09T14:29:05.563 回答