首先我得到所有用户朋友
FB.login(function(response){
console.log(response);
FB.api(
"/me/taggable_friends?fields=name,id,picture.width(100).height(100)",
function (response) {
console.log(response);
if (response && !response.error) {
$('#usersList').find('li').remove();
response.data.forEach(function(a, b){
console.log(a, b);
$('#usersList').append('<li class="users__item jsUser" data-fb-name="'+ a.name+'" data-fb-id="'+ a.id+'">'+
'<a class="users__link">'+
'<img src="'+ a.picture.data.url+'" height="63" width="64" alt="" class="users__pic">'+
'</a>'+
'</li>');
});
bindJsUser();
}
}
);
}, {scope: 'public_profile,user_friends'});
每个朋友的身份证,如gahdfashjdfg234234137ryuhdsfius43534523wdfwef43r435,我无法在墙上张贴该身份证
var user = $('#usersList').find('li.active');
if(!user){
return;
}
// calling the API ...
var obj = {
method: 'feed',
to: user.attr('data-fb-id'), // <-- PROBLEM
link: 'http://snow.sa-wd.ru',
picture: 'http://snow.sa-wd.ru/images/preview-greeting.webp',
name: 'test',
caption: 'Submit to friend',
description: 'Using Dialogs for posting to friends timeline.'
};
function callback(response) {
console.log(response['post_id']);
}
FB.ui(obj, callback);
错误:
API错误代码:100 API错误说明:参数无效 错误消息:AaIIMETTji_8- m19fUI *** yc ********* GUTQg无法解析为有效的用户ID
答案 0 :(得分:1)
不推荐使用Feed对话框,不应再使用它。并且文档说“ ID必须是也使用您的应用的朋友。” - 这适用于“to”参数。因此,如果您真的仍想使用Feed对话框,只需使用/me/friends
即可获取授权您的应用的所有朋友,并使用其中一个ID作为“to”参数。
顺便说一下,除了标记/提及之外,您不能使用taggable_friends
。这就是为什么你只获得“标记令牌”,而不是用户ID。
你永远不会因为你想要达到的目标而获得批准:
使用此边缘必须经过Facebook审核才能代表使用您应用的用户进行调用。
话虽如此,即使使用已弃用的Feed对话框,在朋友的墙上发帖也是不好的做法。它看起来像垃圾邮件。 这就是为什么无法向未授权您的应用的朋友发帖的原因。