gpt4 book ai didi

javascript - 在 FQL 中为 10 个随机的 Facebook 好友找一张照片?

转载 作者:行者123 更新时间:2023-11-30 18:44:40 25 4
gpt4 key购买 nike

我正在尝试执行 Facebook FQL Multiquery(通过 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. 查询 1:获取用户的 10 个随机好友的 userid 和 name。
  2. 查询 2:获取用户 ID 与查询 1 相匹配的照片标签的照片 ID 和主题名称。
  3. 查询 3:从与查询 2 相匹配的照片中选择图像 src。

问题是我无法在查询 2 中按用户选择 DISTINCT 记录。也就是说,我不能告诉 Facebook 只为每个用户返回一张照片。现在,它是任意的,所有 10 行都可以是同一用户的不同照片标签。

我可以在 Javascript 中做一些循环,并为每个匹配的用户对图片进行单个 FQL 查询,但这似乎是错误的。关于如何有效地执行此操作的任何其他建议,最好是直接在 FQL 中?

谢谢!

最佳答案

好吧,我不久前就解决了这个问题,为了完整起见,我将关闭它。

我必须做的不是在一个多查询中完成所有工作。我必须首先进行一个查询来检索一些随机的 friend ,然后进行一个多查询,我们为每个 friend 加载一张随机照片。

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
}
}

关于javascript - 在 FQL 中为 10 个随机的 Facebook 好友找一张照片?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5795637/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com