js在朋友的Facebook墙上发布了taggable_friend ID

时间:2014-12-12 09:04:00

标签: javascript facebook

首先我得到所有用户朋友

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

1 个答案:

答案 0 :(得分:1)

不推荐使用Feed对话框,不应再使用它。并且文档说“ ID必须是也使用您的应用的朋友。” - 这适用于“to”参数。因此,如果您真的仍想使用Feed对话框,只需使用/me/friends即可获取授权您的应用的所有朋友,并使用其中一个ID作为“to”参数。

顺便说一下,除了标记/提及之外,您不能使用taggable_friends。这就是为什么你只获得“标记令牌”,而不是用户ID。

你永远不会因为你想要达到的目标而获得批准:

  

使用此边缘必须经过Facebook审核才能代表使用您应用的用户进行调用。

话虽如此,即使使用已弃用的Feed对话框,在朋友的墙上发帖也是不好的做法。它看起来像垃圾邮件。 这就是为什么无法向未授权您的应用的朋友发帖的原因。