2017-02-10 171 views
3

我在我的Facebook Messenger中使用web聊天chatbot進行付款,而MessengerExtensions.requestCloseBrowser應該關閉webview窗口並將用戶返回到聊天流程 - 但它沒有「工作。文件說這是有效的,我試圖完全按照他們所說的去做。顯然我錯過了一些東西。有沒有人看到我在這裏失蹤?MessengerExtensions.requestCloseBrowser似乎沒有工作

我在一個rails 4.2應用程序中託管webview,所以js在一個單獨的文件中。我正在使用jquery來處理事件。下面是代碼:

視圖按鈕應該觸發的動作(使用苗條): button type="button" class="chat-button" id="closeButton" Done!

的.js文件:

$(function(d, s, id){ 
    var js, fjs = d.getElementsByTagName(s)[0]; 
    if (d.getElementById(id)) {return;} 
    js = d.createElement(s); js.id = id; 
    js.src = "//connect.facebook.com/en_US/messenger.Extensions.js"; 
    fjs.parentNode.insertBefore(js, fjs); 
}(document, 'script', 'Messenger')); 

$(function() { 
    $("#closeButton").click(function() { 
    alert("hit me"); 
    MessengerExtensions.requestCloseBrowser(
     function success() {}, 
     function error(err) { 
     alert(err) 
     } 
    ); 
    return false; 
    }); 
}); 

window.extAsyncInit = function() { 
    alert("js sdk finished loading"); 
}; 

注意,這兩個警報做火,一個當sdk加載時,以及一個點擊按鈕時。但是webview並沒有像宣傳的那樣關閉。順便說一句 - 返回的錯誤是2071010.我錯過了什麼?

+0

我從其他用戶那裏聽說過這對他們有用。我必須在我的環境中有一些能夠防止這種情況發生的東西。 – barnard

+0

這隻適用於Android和iOS。此外,messenger應用的iOS版本必須是最新版本,否則這可能無法在iOS上運行。 – TBE

回答

0

我向Facebook提出了一個問題,他們剛剛解決了另一個問題,也解決了這個問題。 Messenger在IOS上的新版本以及我的代碼突然按照廣告方式工作。感謝大家的關注。

1

messenger_extensions需要設置爲true。

"attachment": { 
    "type": "template", 
    "payload": { 
     "template_type": "button", 
     "text": "Check this out!", 
     "buttons": [ 
      { 
       "type": "web_url", 
       "url": "https://yourpage.com", 
       "title": "Some Title", 
       "webview_height_ratio": "compact", 
       "messenger_extensions": true 
      } 
     ] 
    } 
} 
+0

這實際上在你的代碼中工作嗎? 我得到這個錯誤時,我的'whitelisted_domains'字段添加到一個按鈕: '''OAuth的「Facebook平臺」,「INVALID_REQUEST」「(#100)無效鍵\\」 whitelisted_domains \\」是在參數\發現\「name_placeholder [buttons] [0]''' – AndreasPizsa

+0

因此,刪除'whitelisted_domains'工作,並添加'messenger_extensions'肯定也有幫助;) 我通過[Messenger Profile API]添加了'messenger_extensions'(https:// developers.facebook.com/docs/messenger-platform/reference/messenger-profile-api/domain-whitelisting/),現在一切都按預期工作。 – AndreasPizsa

+0

你是對的...我對代碼進行了更新,當我測試它時,它還沒有傳播。命令行是進入白名單進入Facebook設置的方式。我在配置按鈕中使用白名單的原始示例會導致它中斷。我更新了這個例子。 –