ruby-on-rails - "Post 404 not found"与 Rails 和 Api.ai

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

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

每次我向 Telegram 机器人写入内容(在 Dialogflow fullfilment 中设置 token )时,文本都会发送到 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 paths,以查看生成的路径是否具有实际的命名。

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

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

关于ruby-on-rails - "Post 404 not found"与 Rails 和 Api.ai,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51615361/

相关文章:

javascript - 带有 Contentful 和 Node 的 Webhook

node.js - 如何安排 Dialogflow

Javascript - 在新请求中使用先前请求中的数据

javascript - 在 Node js中获取谷歌日历事件ID

ruby-on-rails - 强制 Bundler 安装本地 Ruby 版本支持的 gems

ruby-on-rails - 为什么我的 Rails 应用程序中会出现使用 force_ssl 的无限重定向循环?

mysql 巨大的操作

ruby-on-rails - 在 Rails link_to 中使用数组添加 anchor 选项

dialogflow-es - 如何在 Dialogflow 中的检测意图文本 API 中发送 accessToken

laravel - Whatsapp webhook 无法与 ngrok 连接