【问题标题】:"Post 404 not found" with Rails and Api.aiRails 和 Api.ai 的“找不到 404 帖子”
【发布时间】:2019-01-07 23:12:29
【问题描述】:

我正在使用 Ruby on Rails 制作一个 webhook,以将 Dialogflow (api.ai) 和 Telegram 与我的应用程序连接起来。我还在 webhook 上使用 Ngrok

每次我写到 Telegram 机器人(在 Dialogflow fullfilment 中设置的令牌)时,文本都会发送到 Dialogflow 以创建一个带有我想要的参数的 JSON 请求。这是有效的。

当我想在我的应用程序上接收此 JSON 时,问题就开始了。我收到此错误: Ngrok configuration

这是我的 routes.rb

   # Telegram
   post "/#{Chamber.env.dialogflow.route}" => 'chatbot_users#webhook'

这是我的 dialogflow.yml

  dialogflow:
    url: 'https://XXXXXac.ngrok.io'
    route: 'webhook'

这是我的 chatbot_users_controller

class ChatbotUsersController < ApplicationController
  skip_before_filter :verify_authenticity_token

  def webhook
    p "-----------------------NOT REACHING THIS POINT--------------------"
    if request.headers['Content-Type'] == 'application/json'
      data = JSON.parse(request.body)
    else
      data = params.as_json
    end  
  end
end

如果需要更多代码,请询问。 感谢您的建议。

【问题讨论】:

  • 如果你运行rake routes,你会得到什么?,你在那个输出中看到/webhook吗?。
  • webhook POST /webhook(.:format) chatbot_users#webhook

标签: ruby-on-rails webhooks dialogflow-es ngrok


【解决方案1】:

首先,您可以运行rake routes,查看生成的路径是否具有实际命名。

我建议在声明路径时在routes.rb 中使用:asas 选项允许您覆盖实际生成路径的正常命名。

post "/#{Chamber.env.dialogflow.route}" =&gt; 'chatbot_users#webhook', :as =&gt; 'webhook'

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-10-10
    • 1970-01-01
    • 2016-04-24
    • 1970-01-01
    • 2017-06-06
    • 1970-01-01
    • 1970-01-01
    • 2013-06-21
    相关资源
    最近更新 更多