fb-send-to-messenger data-ref无法传递url值

时间:2018-03-09 07:32:11

标签: ruby-on-rails facebook-graph-api facebook-messenger facebook-messenger-bot

我使用 gem facebook-messenger

发送至Facebook

当人们点击网站上嵌入的Send to Messenger按钮时,您将收到一个optin事件。

Bot.on :optin do |optin|
  optin.sender    # => { 'id' => '1008372609250235' }
  optin.recipient # => { 'id' => '2015573629214912' }
  optin.sent_at   # => 2016-04-22 21:30:36 +0200
  optin.ref       # => 'CONTACT_SKYNET'

  optin.reply(text: 'Ah, human!')
end


<div class="fb-send-to-messenger" 
  messenger_app_id="<APP_ID>" 
  page_id="PAGE_ID" 
  data-ref="<PASS_THROUGH_PARAM>" 
  color="<blue | white>" 
  size="<standard | large | xlarge>">
</div>

WHEN 我尝试将简单字符串添加到data-ref,它可以正常工作。 但是放置urlhttp://asdasda/asdas/sad?/asd.。) DOESN&#39; TEDED

1 个答案:

答案 0 :(得分:0)

我发现data-ref不接受特殊字符(例如!@#$%^&amp; *()| ...,

因此编码和解码网址将无效。 由于例如编码/解码的URL包含特殊字符,例如

现在,为了使我的功能正常工作,我所做的是制作一个替换特殊字符的辅助方法。

def parse_product_url(url)
  url.gsub('?', 'QMARK').gsub('&', 'AND').gsub('//', '')
end

在Bot..reply参数中执行 in-reverse