"Post 404 not found" 与 Rails 和 Api.ai

"Post 404 not found" with Rails and Api.ai

我正在 Rails 上使用 Ruby 创建一个 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,查看生成的路径是否具有实际命名。

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

post "/#{Chamber.env.dialogflow.route}" => 'chatbot_users#webhook', :as => 'webhook'</pre>