"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
中使用 :as
。 as
选项允许您覆盖实际生成的路径的正常命名。
post "/#{Chamber.env.dialogflow.route}" => 'chatbot_users#webhook', :as => 'webhook'</pre>
我正在 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
中使用 :as
。 as
选项允许您覆盖实际生成的路径的正常命名。
post "/#{Chamber.env.dialogflow.route}" => 'chatbot_users#webhook', :as => 'webhook'</pre>