Php 如何在后台运行Facebook API在数据库中加载联系人
我在一个社交网站上工作。有一个通过facebook登录的选项。当用户单击“使用Facebook登录”时。我们正在数据库中导入他的联系人等。我使用三种不同的FQL查询来获取数据。1如下图所示: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) {
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),并从中存储到数据库中。使用这些方法,您可以同时触发所有三个查询并存储它们。这减少了您的时间,用户无需等待处理