Facebook API - 按ID分享好友名称

时间:2013-02-15 14:50:39

标签: facebook facebook-fql

我有一个查询,为我提供了朋友ID的列表:

'SELECT owner FROM photo WHERE object_id IN (SELECT object_id FROM photo_tag WHERE subject=me())'

我想获取这些ID的名称,我尝试使用:

var frndTagNames = new Array();

for (var j=0;j<frndTagIds.fql_result_set.length;j++)

{
    FB.api('/'+frndTagIds.fql_result_set[j].owner+'', function(frnds) {
    frndTagNames[j] = frnds.name;
});
}   
console.log(frndTagNames);

问题是我不能在FB.api范围之外使用“frndTagNames”数组。

BTW,整个代码都在另一个FB.api代码

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

frndTagNames应该在回调函数中可用。你得到什么样的回应(例如某种错误)?尝试将console.log(响应)添加到回调函数。

例如,我可以定义一个数组并在回调函数中为它分配一个值,如下所示:


var foo = new Array();

FB.api('/me/', function(resp) { foo[0]=resp.name });

console.log(foo[0])
"Brian Ledsworth"

嵌套块示例(保留'this'的上下文)。将此分配给_that,然后使用_that.frndTagNames

var _that = this;
FB.getLoginStatus(function(response) {
  if (response.status === 'connected') {
    FB.api('/me/friends', function(response) {
      if(response && response.data) {
        for(i=0;i<response.data.length;i++) {
          _that.friendsFacebookColl.add(response.data[i]);
        }
      }
    });
  }
});