我;我试图在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(',')
});
}
答案 0 :(得分: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
});