我正在使用一个共享对话框,我希望在用户向他/她的时间线发布某些内容之后发生一些事情。我现在用的是:
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");
}
}
);
}但这会导致“某些东西”出现,即使当用户取消张贴。如果用户在不需要任何权限的情况下将消息发布到他/她的时间线上,我是否可以找到该消息。如果这要求我使用不同的共享方法(比如提要对话框),我不会介意。
发布于 2015-05-05 10:54:37
使用馈电对话代替。
尽管它的UI很难看,但是通过Feed成功的共享将返回一个像{post_id: "10206702999763274_10206703017843726"}这样的响应对象,不管用户对你的Facebook应用程序是否进行身份验证,而按cancel键将返回一个null,关闭弹出窗口将返回undefined。
您可以通过使用普通的Facebook用户配置文件设置并尝试从允许的列表中删除应用程序来测试这种行为。
这与共享对话框形成了鲜明的对比,如果您的应用程序还没有经过用户的身份验证,那么它将返回一个空的响应对象{},而不管它是否成功地共享。
此外,如果您使用的是直接url重定向方法,而不是js,那么当用户在共享页面上按下cancel时,您将收到附加到重定向目标的GET参数error_code和error_message。
从2015年12月开始,=>使用Feed或共享对话框访问响应中的post ID。要做到这一点,用户必须登录到您的应用程序并授予它publish_actions。https://developers.facebook.com/docs/sharing/reference/share-dialog#response
注意:在撰写本文时(API v2.3),这是正确的。然而,由于Facebook因破坏API行为而臭名昭著,所以您应该先自己测试它。
发布于 2014-10-16 17:45:24
根据文档,响应是发布条目的object_id,只有在用户授权应用程序时才能填写。也就是说,如果用户没有得到授权,您就无法检测用户是否真的发布了什么。
来源:https://developers.facebook.com/docs/sharing/reference/share-dialog
https://stackoverflow.com/questions/26410492
复制相似问题