我正在使用forge facebook api打开供稿对话框,将图片发布到用户墙上。如果用户单击“取消”而不是“共享”,则仍会触发成功回调。如果用户单击关闭(x)按钮,则会正确触发错误回调。
forge.facebook.ui(
{
method: 'feed',
link: link,
picture: model.get('file').url,
name: name,
caption: caption,
description: 'Lorem Ipsum'
},
function(response) {
// Called when user clicks cancel.
forge.notification.create(
'Great!',
'Item has been posted to your wall',
function() {
},
function(error) {
forge.logging.error(JSON.stringify(error));
}
);
},
function (e) {
// Called when user closes dialogue but not on cancel.
forge.logging.info('facebook failed: ' + JSON.stringify(e));
}
);
答案 0 :(得分:0)
我倾向于认为这是出乎意料的行为 - 但是它在Facebook提供的SDK中是一致的,并且已经有一段时间了,所以我们已经按原样通过了它。
如果用户点击对话框左上角的x
,则会调用错误回调。如果用户取消该对话框,则将使用{}
作为回调参数调用您的成功回调。
我建议用以下内容检查该案例:
forge.facebook.ui({
method: 'feed',
link: link,
},
function (response) {
if (JSON.stringify(response) === "{}") {
handleCancel();
} else {
handleSuccess(response);
}
}
function (error) {
handleError(error);
}
);