首页 文章

Rails Facebook Messenger Bot

提问于
浏览
0

这是我的第一个问题,如果我做错了,请告诉我 . 我尝试使用'messenger-ruby' gem(https://github.com/netguru/messenger-ruby)构建一个简单的facebook messenger机器人 . 我成功安装了gem,但我认为我并没有真正了解如何发送/接收消息 .

详细说明,我遵循了自述文件中的所有步骤:

  • 获取页面访问令牌

  • create messenger.rb,如自述文件中所述

  • 完全按照自述文件添加了路径

  • 在自述文件中创建了messenger_controller.rb

  • 在自述文件中成功设置了webhooks

  • visited / messenger / subscribe订阅

这一切都工作到目前为止,在https://developers.facebook.com/apps/.../messenger我看到Webooks下的绿色支票,并在订阅页面下看到我的页面 .

我做了 not 做"App Review for 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请求...

真的很感激任何帮助 . 请让我知道如何改进我的问题 .

1 回答

  • 1

    在写完我的问题后,我正在摆弄https://developers.facebook.com/apps/ . 我意识到:

    • 发送邮件的用户只是页面管理员,而不是应用程序管理员 .

    • 我的应用程序未公开,我的页面未发布 .

    我添加了用户作为应用程序管理员,它工作 . 上面的代码和gem安装都可以 .

    因为这花了我差不多一整天,我希望这个答案也有助于其他人 . 对不起,如果我回答我自己的问题 .

相关问题