Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在FQL中为10个随机的Facebook好友中的每一个查找一张照片?_Javascript_Facebook_Facebook Graph Api_Facebook Fql - Fatal编程技术网

Javascript 在FQL中为10个随机的Facebook好友中的每一个查找一张照片?

Javascript 在FQL中为10个随机的Facebook好友中的每一个查找一张照片?,javascript,facebook,facebook-graph-api,facebook-fql,Javascript,Facebook,Facebook Graph Api,Facebook Fql,我正在尝试执行Facebook FQL多重查询(通过JS SDK FB.api调用),为10个随机的Facebook好友中的每一个加载一张照片,在这些好友被标记的地方(也称为“显示10个随机好友和他们的一张照片”)。以下是我的Javascript查询数组: var queries = { q1:"SELECT uid, name FROM user WHERE uid IN (Select uid2 from friend where uid1 = " + user

我正在尝试执行Facebook FQL多重查询(通过JS SDK FB.api调用),为10个随机的Facebook好友中的每一个加载一张照片,在这些好友被标记的地方(也称为“显示10个随机好友和他们的一张照片”)。以下是我的Javascript查询数组:

   var queries = {
            q1:"SELECT uid, name FROM user WHERE uid IN (Select uid2 from friend where uid1 = " + user_id 
                 + " order by rand() limit 10) ",
            q2: "SELECT pid, subject from photo_tag where subject in (SELECT uid from #q1) limit 10",
            q3:"SELECT src from photo where pid in (SELECT pid from #q2)"};
我想做的是:

  • 查询1:获取用户的10个随机好友的用户名和姓名
  • 查询2:获取phototags的照片id和主题名称,其中用户id与查询1中的匹配
  • 查询3:从与查询2中的照片匹配的照片中选择图像src
  • 问题是,在查询2中,我无法按用户选择不同的记录。也就是说,我不能告诉Facebook只为每个用户返回一张照片。现在,它是任意的,所有10行可能是同一用户的不同照片标签

    我可以在Javascript中做一些循环,并为每个匹配的用户的pic进行单个FQL查询,但这似乎是错误的。关于如何有效地做到这一点,最好直接在FQL中提出任何其他建议


    谢谢

    好吧,我前一段时间解决了这个问题,为了完整起见,我现在结束这个问题

    我所要做的不是在一个多查询中完成所有操作。我必须先做一个查询来检索一些随机的朋友,然后再做一个多重查询,在这里我们为每个朋友加载一张随机的照片

    FB.api(
            {
                method: 'fql.query',
                query: "SELECT uid, name FROM user WHERE uid IN (Select uid2 from friend where uid1 = " + user_id 
                     + " order by rand() limit 8) "
            }, function (response) {
                var queries = {};
                for (x in response) {
                    if (typeof photoArray[response[x].uid] == 'undefined') photoArray[response[x].uid] = [];
                    photoArray[response[x].uid]['name'] = response[x].name;
                    queries[response[x].uid] = "SELECT src_big, caption from photo where pid in (SELECT pid from photo_tag where subject =" + response[x].uid + " order by rand() limit 1) ";
                }
    
                FB.api(
                    {
                method: 'fql.multiquery',
                queries: queries
                    },
                    function(response) {
    
    
                        for (y in response) {
                            if (typeof response[y].fql_result_set[0] != 'undefined') {
                                photoArray[response[y].name]['image_src'] = response[y].fql_result_set[0].src_big;
                                            // Do what you want with the pics
                            }
                        }