我正在使用共享对话框,我希望在用户将内容发布到他/她的时间轴后发生一些事情。现在我正在使用:
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");
}
}
);
}
但这会导致“Something”即使在用户取消发布时也会显示。如果用户在不需要任何权限的情况下将消息发布到他/她的时间轴,我有什么办法可以找到。如果这需要我使用不同的共享方法(如提要对话框),我不介意。
最佳答案
使用Feed Dialog相反。
尽管它的 UI 很丑陋,但通过 Feed Dialog 成功分享将返回一个响应对象,如 {post_id: "10206702999763274_10206703017843726"}
无论用户是否验证您的 Facebook 应用程序,而按取消将返回一个null
并关闭弹出窗口将返回 undefined
。
您可以通过转到正常的 Facebook 用户个人资料设置并尝试从允许列表中删除您的应用来测试此行为。
这与 Share Dialog 形成对比,如果您的应用尚未经过用户身份验证,无论共享是否成功,都将返回一个空的响应对象 {}
。
此外,如果您使用直接url重定向方法而不是js SDK,当用户在分享页面上按下取消时,您将收到一个GET参数error_code
和error_message
附加到您的重定向目标。
[自 2015 年 12 月起] => 使用提要对话框或共享对话框访问响应中的帖子 ID。为此,用户必须已登录到您的应用程序并授予它 publish_actions。 https://developers.facebook.com/docs/sharing/reference/share-dialog#response
注意:在撰写本文时 (API v2.3) 是这样。然而,由于 Facebook 因破坏 API 行为而臭名昭著,您应该先自己进行测试。
关于javascript - 检查用户是否使用 FB.ui 在共享对话框中发布(或取消)共享到 Facebook,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26410492/