Php 如何在后台运行Facebook API在数据库中加载联系人

Php 如何在后台运行Facebook API在数据库中加载联系人,php,jquery,facebook-fql,Php,Jquery,Facebook Fql,我在一个社交网站上工作。有一个通过facebook登录的选项。当用户单击“使用Facebook登录”时。我们正在数据库中导入他的联系人等。我使用三种不同的FQL查询来获取数据。1如下图所示: var query1 = FB.Data.query("SELECT name,flid,owner,type from friendlist where owner = me()"); query1.wait(function (row) {

我在一个社交网站上工作。有一个通过facebook登录的选项。当用户单击“使用Facebook登录”时。我们正在数据库中导入他的联系人等。我使用三种不同的FQL查询来获取数据。1如下图所示:

var query1 = FB.Data.query("SELECT name,flid,owner,type from friendlist where owner = me()");
                          query1.wait(function (row) {
                              friends_array = row;
                              strdata = "";
                              for (i = 0; i < row.length; i++) {
                                  strdata += ' {"name": "' + row[i].name + '", "flid": "' + row[i].flid + '","owner": "' + row[i].owner + '", "type": "' + row[i].type + '"} ,'
                              }
                              strdata = strdata.substring(0, strdata.length - 1);
                              var newjson1 = '[' + strdata + ']';
                              $.post('loadfbdata.php', { user_id: userid, email: response.email, jsondata: newjson1, flag: '2' }, function (data) {

                              });

                          });
var query1=FB.Data.query(“从friendlist中选择name、flid、owner、type,其中owner=me()”;
查询1.等待(函数(行){
友人数组=行;
strdata=“”;
对于(i=0;i
有三个类似这样的FQL查询,每个查询返回的数据都使用jQueryPost方法存储在数据库中。我如何独立运行它们。我的意思是所有三个FQL查询都应该在后台运行。我不应该让他们“在数据库中导入联系人时执行”,然后重定向到主页。现在,我正在显示加载20sec的图像,以便所有三个FQL查询都可以执行它们的工作

执行此任务的最佳解决方案是什么

一种可能是像平常一样“使用Facebook登录”,而不使用那些查询。然后,使用PHP检测该用户是否第一次登录,然后注入Javascript请求在后台导入他的联系人

<?php if ($no_contact_has_been_imported_from_this_user) { ?>
    $.ajax({
        ...
        url: "import.php",
        ...
    });
<?php } ?>

$.ajax({
...
url:“import.php”,
...
});

首先,理想情况下,我们不应该存储任何Facebook用户的好友列表,因为它可能会定期更新,这会给您的数据库带来额外负担

还是还想去商店

您可以做的一件事是,在登录facebook并重定向到主页后,从Javascript sdk获取facebook好友列表(无论是使用相同的FQL还是FB.api),并从中存储到数据库中。使用这些方法,您可以同时触发所有三个查询并存储它们。这减少了您的时间,用户无需等待处理