【问题标题】:Facebook Send-To-Messenger Event ListenersFacebook Send-To-Messenger 事件监听器
【发布时间】:2016-09-02 02:40:18
【问题描述】:

Facebook 推出了一些非常酷的东西,我一直在试图弄清楚如何让页面在用户点击和选择加入时重定向。现在,我真的不擅长java,php是我的事。

参考:https://developers.facebook.com/docs/messenger-platform/plugin-reference/send-to-messenger#event

工作代码:

FB.Event.subscribe('send_to_messenger', function(e) {
// callback for events triggered by the plugin
console.log('inside the send_to_messenger');  
window.top.location = 'http://google.com';
});

这将退出 console.log 并重定向,但我想做的是当用户单击按钮并使用 send_to_messener 按钮触发选择加入时做一些事情。

所以我尝试了

FB.Event.subscribe('clicked', function(e) {
// callback for events triggered by the plugin
console.log('user clicked button');  
window.top.location = 'http://google.com';
});

--- 也---

FB.Event.subscribe('send_to_messenger', function(e) {
FB.Event.subscribe('clicked', function(e) {
// callback for events triggered by the plugin
console.log('user clicked button');  
window.top.location = 'http://google.com';
}});

同样,没有任何效果 - 如果有人有线索可以指出正确的方向,我将不胜感激..谢谢!!

【问题讨论】:

    标签: javascript facebook facebook-messenger


    【解决方案1】:

    又看了一遍,就明白了。

    if (response.is_after_optin == true ){ // do something }
    

    【讨论】:

    • is_after_optin 在用户已经登录并点击“发送到信使”时未设置为 true。
    【解决方案2】:

    // 完整的工作示例:

        window.fbAsyncInit = function() {
          FB.init({
            appId: "app_id",
            xfbml: true,
        status: true, 
        cookie: true,
            version: "v2.6"
          });
    
    
          FB.Event.subscribe('send_to_messenger', function(response) {
        if ( response.event == 'clicked' ) {
              // callback for events triggered by the plugin
                window.top.location = 'https://www.messenger.com/t/page_id';
        };
          });
    
        };
    
        (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.net/en_US/sdk.js";
           fjs.parentNode.insertBefore(js, fjs);
        }(document, 'script', 'facebook-jssdk'));
    
      </script>
    
    <br>
    <div class="fb-send-to-messenger"
    
      messenger_app_id="app_id" 
      page_id="page_id"
      data-ref="send this info to the app"
      color="blue"
      size="xlarge" >
    </div>
    

    【讨论】:

    • 是的,这正是我上面所说的。我们现在遇到的问题是他们已经“选择”并与机器人进行了对话......它不会重定向。所以我们一直在想办法解决。
    • clicked 即使用户没有登录 Facebook 也会被触发。
    • 什么或如何获得messenger_app_id
    • 在 Fb.init({appId:XXX}) 中是否相同?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-14
    • 2014-02-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-21
    相关资源
    最近更新 更多