为什么FB.UI Share响应什么都没有回复?

时间:2014-10-01 13:08:30

标签: facebook facebook-javascript-sdk share facebook-share fb.ui

我已经设置了由Jquery触发的共享弹出窗口。它有效,但我想使用响应值来成功触发AJAX调用,而Facebook只返回一个空数组。

这是javascript


    $("#fb-request").click(function () {
        FB.ui({
            method: 'share',
            name: 'Check out website',
            href: 'URL_TO_SHARE',
        },
        function (response) {
            if (response && !response.error_code) {
              console.log(response); // Returns: []
            }
        });
    });

因此,我无法区分发帖人和使用取消按钮的人。我在这里错过了什么吗? 或者在Facebook应用程序上有什么设置?

谢谢,

4 个答案:

答案 0 :(得分:3)

来自documentation

  

响应数据

     

参数说明   OBJECT_ID   仅在用户使用Facebook登录您的应用程序并且已授予publish_actions时才可用。如果存在,则这是已发布的Open Graph故事的ID。

答案 1 :(得分:2)

如果用户取消共享对话框,则响应未定义,因此:

$("#fb-request").click(function () {
    FB.ui({
        method: 'share',
        name: 'Check out website',
        href: 'URL_TO_SHARE',
    },
    function (response) {
        if (response && !response.error_code) {
            if (typeof response != 'undefined'){
                //shered
            }
        }
    });
});

答案 2 :(得分:0)

首先检查您的用户是否已连接。

FB.getLoginStatus(function(response) {
if (response.status === 'connected') {
    FB.ui(
        {
            method: 'feed',
            link: 'your_url',
            mobile_iframe: true
        },
        function(response){
        });
}
else {
    FB.login(function(response){
        FB.ui(
        {
            method: 'feed',
            link: 'your_url',
            mobile_iframe: true
        },
        function(response){
        });
    });
}

});

答案 3 :(得分:0)

这对我有用。

FB.ui({
    method: 'share',
    display: 'popup',
    href: url,
}, function(response){
    if (typeof response != 'undefined'){
        alert("shared");
    }else{
        alert("no shared");
    }
});