2017-02-10 172 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设置的方式。我在配置按钮中使用白名单的原始示例会导致它中断。我更新了这个例子。 –