Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 检查用户是否使用FB.ui在共享对话框中发布(或取消)共享到Facebook_Javascript_Facebook - Fatal编程技术网

Javascript 检查用户是否使用FB.ui在共享对话框中发布(或取消)共享到Facebook

Javascript 检查用户是否使用FB.ui在共享对话框中发布(或取消)共享到Facebook,javascript,facebook,Javascript,Facebook,我正在使用一个共享对话框,我希望在用户将某些内容发布到他/她的时间线后发生一些事情。现在我正在使用: function shareToFB(myName, myLink) { $('.overlay-bg').hide(); FB.ui({ method: 'share', href: myLink, name: myName }, function(response) { if (response &

我正在使用一个共享对话框,我希望在用户将某些内容发布到他/她的时间线后发生一些事情。现在我正在使用:

function shareToFB(myName, myLink) {
    $('.overlay-bg').hide();
    FB.ui({
        method: 'share',
        href: myLink,
        name: myName
    }, function(response) {
        if (response && !response.error_code) {
            alert("Something");
        } else {
            alert("Error");
        }
    }
    );
}

但这会导致“某物”出现,即使用户取消发布。我是否可以找到用户是否在不需要任何权限的情况下将消息发布到他/她的时间线上。我不介意这是否要求我使用不同的共享方法(如feed对话框)。

根据文档,响应是发布条目的
对象id
,并且只有在用户授权应用程序时才会填写。也就是说,如果用户未经授权,您无法检测到该用户是否真的发布了内容

来源:

改用

尽管它的UI很难看,但通过Feed Dialog成功共享将返回一个响应对象,如
{post_id:“1020670299976274_10206703017843726”}
,而不管用户是否验证了你的Facebook应用程序,按cancel将返回
null
,关闭弹出窗口将返回
未定义的

您可以通过转到正常的Facebook用户配置文件设置并尝试从允许列表中删除您的应用程序来测试此行为

这与相反,如果您的应用程序未经用户验证,则无论是否成功共享,都将返回空响应对象
{}

此外,如果您使用直接url重定向方法而不是js SDK,当用户在共享页面上按“取消”时,您将收到一个附加到重定向目标的GET参数
error\u code
error\u message

[自2015年12月起]=>使用提要对话框或共享对话框访问回复中的帖子ID。要实现这一点,用户必须登录到您的应用程序并授予其发布操作



注:在撰写本文时(API v2.3)是如此。然而,由于Facebook因破坏API行为而臭名昭著,你应该首先自己测试它。

我的程序的一部分应该根据每个人获得的共享数量对列表中的项目进行排序。我可以检查成功响应的数量,但如果有人单击“取消”,那么这就不能算作一个共享(出于明显的原因)。如何在javascript中识别这些行为?“通过提要对话框成功共享将返回一个响应对象,如{post_id:“10206702999763274_10206703017843726”},而不管用户是否验证您的Facebook应用程序,按“取消”将返回空值,关闭弹出窗口将返回未定义。”