因此,我希望有人打电话帮助我解决这个问题,因为我不太确定它的JavaScript还是Facebook.
这是我的情况.我在facebook上升级到了Requests 2.0,这不再使我能够在表单中添加exclude_ids字段,以便用户邀请其朋友使用该应用程序.这种形式的目的不仅仅是邀请朋友,而是在应用程序中将朋友添加为某物.
简而言之,我有一个他们已经添加的朋友的列表,我想从他们的朋友的主列表中过滤出来,这样当他们想要使用表单时,不会显示已经添加的朋友.
这是我的Javascript以获取朋友:
<script language="Javascript" type="text/javascript">
var friends_filter = '<?=$myClass->getFiltered());?>';
</script>
将返回类似:
999999999,999999999,999999999,999999999,999999999,999999999,999999999
这是他们尚未添加的朋友的ID列表.
这是我的表格代码:
function addUser() {
FB.ui(
{
method: 'apprequests',
display: 'dialog',
title: 'Add friends',
message: 'Hey, I added you as a user/friend on such-and-such App',
data: 'added',
filters: [{name: 'Non-Added', user_ids: [friends_filter]}],
},
function(response) {
if(response && response.request_ids) {
showLoading('Adding Relatives');
var dataString = 'rids='+response.request_ids;
$.ajax({
type: "GET",
url: server_url+"ajax/add_relative.php",
data: dataString,
success: function(data){
window.location.reload();
}
});
}
}
);
}
如果您查看过滤器:[{name:’Non-Added’,user_ids:[friends_filter]}],这是我在选择器中仅包含IDS列表的地方.对话框弹出,但随后在friends_filter中列出了这些ID,并显示一条错误消息“无法解析为有效的用户ID”
这是我感到困惑的地方,如果我复制并粘贴friends_filter输出的内容并将其替换为ID列表(即999999999,999999999,999999999,999999999)的ID列表,那么它将正常显示.
我知道这是一个详尽的帖子,很抱歉,但是我不知所措.
我唯一想到的可能是我的JavaScript变量friends_filter需要转换为某种某种类型的代码?
有任何想法吗?
解决方法:
我尝试过此代码,对我来说很好
FB.ui(
{
method: 'apprequests',
filters: ['app_non_users'],
message: 'msg here!',
title: 'title for box'
},
function(response) {
alert(response.request_ids);//this is return after send invite
}
);
只是如果您想使用用户使用列表过滤结果
filters: [{name: 'Invite friends', user_ids: <?php echo json_encode($users_array);?> }],