0

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

1 回答 1

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);
    }
);
于 2012-12-05T18:12:52.227 回答