Rails 和 Api.ai 的“找不到 404 帖子”
Posted
技术标签:
【中文标题】Rails 和 Api.ai 的“找不到 404 帖子”【英文标题】:"Post 404 not found" with Rails and Api.ai 【发布时间】: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
【参考方案1】:
首先,您可以运行rake routes
,查看生成的路径是否具有实际命名。
我建议在声明路径时在routes.rb
中使用:as
。 as
选项允许您覆盖实际生成路径的正常命名。
post "/#Chamber.env.dialogflow.route" => 'chatbot_users#webhook', :as => 'webhook'
【讨论】:
以上是关于Rails 和 Api.ai 的“找不到 404 帖子”的主要内容,如果未能解决你的问题,请参考以下文章
将 Flask 和 Ngrok 用于 http://127.0.0.1:5000 时找不到 404
在 phpmyadmin 上找不到 404 - nginx docker