1

我正在尝试向我在 facebook 上的朋友发送请求对话框,但对一些选定的朋友,我创建了一个数组,我只需要向该数组上的 id 发送邀请,我已经构建了此代码,但它不起作用。

看起来它停止了我所有页面的性能

//function to load friends
function loadFriends()
{
    //get array of friends
    FB.api('/me/friends?fields=name,first_name,gender', function(response) {


        console.log(response);
        var divContainer=$('.facebook-friends');
                         var testdiv = document.getElementById("test");

for(var i=0; i<response.data.length; i++){
    if(response.data[i].gender == 'male'){
         testdiv.innerHTML += response.data[i].first_name + response.data[i].id + '<br />';
    }
}

var  arr = []; // Creates an empty array literal.
  for(var i=0; i<response.data.length; i++){
    arr.push(response.data[i].id);
  }
  newInvite(arr); // Call your function and pass the friends array

    });
}

function newInvite(arr){
     FB.ui({ method: 'apprequests',
  message: 'Penelope for WAS',
  filters: ['app_non_users'],
  to:arr.join(',')

});
    }
4

1 回答 1

1

您应该使用逗号分隔的列表作为to参数,而不是数组。

FB.ui({
  method: 'apprequests',
  message: 'Penelope for WAS',
  filters: ['app_non_users'],
  to:arr.join(',')
});

您的代码在处理 JavaScript 变量范围时也有错误。

newInvite是一个缺少arr变量定义的函数(并且arr不在全局范围内,您应该将其传递给它,newInvite以便您的函数内部可以使用它。

function newInvite(arr){
  FB.ui({
    method: 'apprequests',
    message: 'Penelope for WAS',
    filters: ['app_non_users'],
    to:arr.join(',')
  });
)

当然,您应该将朋友 ID 数组传递给函数:

FB.api('/me/friends', {fields:'name,first_name,gender'}, function(response) {
  var  arr = []; // Creates an empty array literal.
  for(var i=0; i<response.data.length; i++){
    arr.push(response.data[i].id);
  }
  newInvite(arr); // Call your function and pass the friends array
});
于 2012-05-28T10:05:08.320 回答