我使用here提供的文档,并使用以下代码。共享对话框正确显示。问题是我无法区分"取消"和"发布"用户对该对话框执行的操作。我想这会是回应的一部分。
FB.ui({
method: 'share',
href: 'https://developers.facebook.com/docs/',
}, function(response){
if (response && !response.error_code) {
console.log(response);
} else {
alert('Error while posting.');
}
});
编辑:来自控制台的输出并不提供任何了解方式
Cancel - Object {e2e: "{"submit_0":1401181811121}"}
Post - Object {e2e: "{"submit_0":1401181815112}"}
答案 0 :(得分:4)
我对此进行了测试,显然在response
对象中有一些信息可用于确定对话框是否被取消。
代码
FB.ui({
method: 'share',
href: 'https://developers.facebook.com/docs/'
}, function(response){
if (response && !response.error_code) {
console.log("OK: "+JSON.stringify(response));
} else {
console.log("Not OK: "+JSON.stringify(response));
}
});
取消后的输出:
{error_code: 4201, error_message: "User+canceled+the+Dialog+flow", e2e: "{"submit_0":1401188820613}"}
所以,我想你可以检查这样的取消:
FB.ui({
method: 'share',
href: 'https://developers.facebook.com/docs/'
}, function(response){
if (response && !response.error_code) {
console.log("OK: "+JSON.stringify(response));
} else if (response && response.error_code === 4201) { //Cancelled
console.log("User cancelled: "+decodeURIComponent(response.error_message));
} else {
console.log("Not OK: "+JSON.stringify(response));
}
});
不幸的是,FB.Events.subscribe()
没有为此对话框的Cancallation提供事件:https://developers.facebook.com/docs/reference/javascript/FB.Event.subscribe/v2.0
答案 1 :(得分:2)
这是故意阻止开发人员使用帖子作为门控机制。应由用户选择是否发布,不应该是应用程序的要求。
答案 2 :(得分:2)
使用" feed"方法而不是"分享"因此,它不需要应用程序权限才能获得响应。
FB.ui({
method: 'feed',
caption: 'My Caption',
link: 'http://www.google.com/'
}, function(response) {
if (response && response.post_id) {
alert('Thank you for sharing!');
} else {
alert('You have cancelled the share.');
}
});
答案 3 :(得分:1)
我的响应函数也有问题,我正在编码并尝试使用fb.UI
return FB.ui({
method: 'share',
href: this.shareUrl,
hashtag: "myHashTag",
quote: "myQuote"
}, function(res) {
console.log("res = ", res);
console.log("res? = ", res != null);
return App.vent.trigger("FBShareView:cancelled");
});
我发现在成功共享上,res是一个空数组,res!= null为真
我发现对于取消方案,res未定义。
我希望将res视为具有error_message的对象,如下所述:https://developers.facebook.com/docs/sharing/reference/share-dialog
你能告诉我可能出现的问题吗?