2012-11-26 29 views
0

我正在使用僞造facebook api打開一個提要對話以將圖像發佈到用戶牆上。如果用戶點擊「取消」而不是「分享」,則成功回調仍然被觸發。如果用戶單擊關閉(x)按鈕,錯誤回調被正確觸發。Trigger.IO - 取消Facebook UI對話激發成功回調

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

是的,我已經檢查了迴應,並且在兩種情況下都沒有定義。 –

回答

0

我傾向於同意這是意外的行爲 - 但它是在幾個Facebook上提供的軟件開發工具包一致,已經有一段時間,所以我們通過它通過原樣。

如果用戶點擊對話框左上角的x,則會調用您的錯誤回調。如果用戶取消該對話框,則將以{}作爲回調參數調用您的成功回調。

我建議你檢查這種情況下的東西,如:

forge.facebook.ui({ 
     method: 'feed', 
     link: link, 
    }, 
    function (response) { 
     if (JSON.stringify(response) === "{}") { 
      handleCancel(); 
     } else { 
      handleSuccess(response); 
     } 
    } 
    function (error) { 
     handleError(error); 
    } 
); 
+0

謝謝詹姆斯。問題是響應回調參數對於取消和保存都完全相同。即JSON.stringify(響應)返回** null **。因此,檢查JSON.stringify(響應)===「{}」在任何情況下都不會返回true。預計SDK會在「保存」中返回一個空的響應? –

+0

我看到這個問題在v1.4.23中修復。 http://docs.trigger.io/en/v1.4/release-notes.html#v1-4-23 –