我正在尝试向我在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(',')
});
}发布于 2012-05-28 18:05:08
您应该使用逗号分隔的列表作为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(',')
});
)可以肯定的是,您应该将好友ids数组传递给函数:
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
});https://stackoverflow.com/questions/10781961
复制相似问题