如何使用Rails从Dialogflow获取JSON响应?

时间:2018-03-18 03:00:30

标签: ruby-on-rails json heroku response dialogflow

我理解对话流的整个过程,我有一个有两个不同意图的工作部署机器人。当用户回答问题时,如何从机器人获得响应? (我将机器人设置为履行到我的域名)。使用rails 5 app并使用Heroku部署它。

谢谢!

2 个答案:

答案 0 :(得分:0)

不完全熟悉Dilogflow,但如果您想在其他应用上发生操作时收到回复,这通常意味着您需要接收来自他们的网络挂钩

  

WebHook是一个HTTP回调:发生某些事情时发生的HTTP POST;通过HTTP POST进行简单的事件通知。实现WebHooks的Web应用程序会在发生某些事情时将消息发布到URL。

我建议您查看他们的fulfillment文档以获取示例。希望这会帮助你。

答案 1 :(得分:0)

如果您已经将jso文件的GOOGLE_APPLICATION_CREDENTIALS路径设置了,现在就可以使用ruby脚本进行测试了。

  1. 创建一个红宝石文件->例如:chatbot.rb
  2. 在文件中写下面的代码。
project_id = "Your Google Cloud project ID"
session_id = "mysession"
texts = ["hello"]
language_code = "en-US"

require "google/cloud/dialogflow"

session_client = Google::Cloud::Dialogflow::Sessions.new
session = session_client.class.session_path project_id, session_id
puts "Session path: #{session}"

texts.each do |text|
  query_input = { text: { text: text, language_code: language_code } }
  response = session_client.detect_intent session, query_input
  query_result = response.query_result

  puts "Query text:        #{query_result.query_text}"
  puts "Intent detected:   #{query_result.intent.display_name}"
  puts "Intent confidence: #{query_result.intent_detection_confidence}"
  puts "Fulfillment text:  #{query_result.fulfillment_text}\n"
end
  1. 插入您的project_id。您可以在Dialogflow的代理上找到此信息。单击左侧菜单中“座席”名称右侧的齿轮。

  2. 在终端或任何用于运行ruby文件的工具中运行ruby文件。然后,您会看到该机器人回复您已发送的“ hello”消息。

obs:不要忘记安装google-cloud gem: