将应用请求对话框发送到特定的 id 数组

Send an app request dialog to specific array of id's

本文关键字:id 数组 应用 请求 对话框      更新时间:2023-09-26

我正在尝试向我在 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(',')
});
    }

您应该使用逗号分隔的列表作为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
});