Trigger.IO - 取消Facebook UI对话触发成功回调

时间:2012-11-26 06:30:15

标签: facebook trigger.io

我正在使用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));
          }
        );

1 个答案:

答案 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);
    }
);