使用特定文本触发 Facebook Messenger 的按钮

Button that triggers Facebook Messenger with specific text

我正在尝试在我的 rails 应用程序上创建一个 Messenger 按钮,以简化用户分享赞助商的方式 link。

所以这将是一个按钮,可以在新 tab/window 中打开 Facebook,并带有一条预先编写的消息,例如:'use this link and get 10% off on myapp.com !'

用户只需键入要向其发送消息的人。

到目前为止我已经设置了 Facebook SDK

  window.fbAsyncInit = function() {
    FB.init({
      appId            : 'XXX',
      autoLogAppEvents : true,
      xfbml            : true,
      version          : 'v3.1'
    });
  };



  (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 = "https://connect.facebook.net/en_US/sdk.js";
     fjs.parentNode.insertBefore(js, fjs);
   }(document, 'script', 'facebook-jssdk'));

但从那时起我不知道如何创建触发上述操作的按钮。我该怎么做?

因此,正如@misorude 在评论中提到的那样,无法共享预先编写的消息;但可以通过这种方式分享 link:

初始化 Facebook SDK:

window.fbAsyncInit = function() {
    FB.init({
      appId            : '01234',
      autoLogAppEvents : true,
      xfbml            : true,
      version          : 'v3.1'
    });
  };

  (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 = "https://connect.facebook.net/en_US/sdk.js";
     fjs.parentNode.insertBefore(js, fjs);
   }(document, 'script', 'facebook-jssdk'));

然后创建一个按钮:

<button class="fb-msg-button" onClick=sendDialog()>
  <i class="fab fa-facebook-messenger"></i>
  <span class="sponsor-btn--text">Messenger</span>
</button> 

终于写出对应的js函数:

  function sendDialog() {
    FB.ui({
      method: 'send',
      link: 'http://www.mylink.fr/',
    });
  }