【发布时间】:2016-07-22 14:52:01
【问题描述】:
这是我的第一个问题,如果我做错了什么,请告诉我。我尝试使用“messenger-ruby”gem (https://github.com/netguru/messenger-ruby) 构建一个简单的 facebook messenger 机器人。我成功安装了 gem,但我想我真的不知道如何发送/接收消息。
详细来说,我按照自述文件中的所有步骤进行操作:
- 获取页面访问令牌
- 按照自述文件中的说明创建 messenger.rb
- 完全按照自述文件中的方式添加路由
- 按照自述文件创建 messenger_controller.rb
- 按照自述文件成功设置 webhook
- 访问/messenger/subscribe 订阅
到目前为止,这一切都奏效了,https://developers.facebook.com/apps/.../messenger 我在 Webooks 下看到一个绿色复选标记,在订阅页面下看到我的页面。
我没有进行“Messenger 应用审核”。
现在的问题是:我尝试对每条传入消息发送标准回复。我将 #components 下自述文件中的代码放入 messenger_controller.rb:
# YOUR_APP/app/controllers/messenger_controller.rb
class MessengerController < Messenger::MessengerController
def webhook
#logic here
if fb_params.first_entry.callback.message?
Messenger::Client.send(
Messenger::Request.new(
Messenger::Elements::Text.new(text: 'some text'),
fb_params.first_entry.sender_id
)
)
end
render nothing: true, status: 200
end
end
但是当页面管理员之一向页面发送消息时,没有任何反应。我查看了日志,但没有看到我期望的 POST 请求。
当使用我的浏览器访问 https://.../messenger/webhook 时,我看到“无效的验证令牌”,并且在日志中显示以下内容:
Started GET "/messenger/webhook" for xxx.xxx.xxx.xxx at 2016-07-22 14:39:52 +0000
Cannot render console from xxx.xxx.xxx.xxx! Allowed networks: 127.0.0.1, ::1, 127.0.0.0/127.255.255.255
Processing by Messenger::MessengerController#validate as HTML
Completed 200 OK in 10ms (Views: 0.3ms | ActiveRecord: 0.0ms)
我想没关系,但我不确定。
我确定我可能犯了一个简单的错误,但我整天都在阅读文档并且找不到解决方案。我什至不确定问题是什么,因为我希望在日志中找到 POST 请求......
任何帮助将不胜感激。请告诉我如何改进我的问题。
【问题讨论】:
标签: ruby-on-rails ruby facebook facebook-messenger