我正在与 Ruby on Rails 进行网络连接,以将 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
如果需要更多代码,只需询问。 感谢您的建议。
答案 0 :(得分:2)
首先,您可以运行rake routes
,以查看生成的路径是否具有该实际名称。
我建议在声明路径时在:as
中使用routes.rb
。使用as
选项,您可以覆盖实际生成的路径的常规命名。
post "/#{Chamber.env.dialogflow.route}" => 'chatbot_users#webhook', :as => 'webhook'