使用 Api.ai 从 Google 操作请求用户位置

Requesting User Location from Google Actions with Api.ai

Google Actions 可以为您提供用户的位置、姓名和其他一些详细信息。如果没有 nodejs SDK,如何在 Api.ai 上完成? Google 中的所有示例都使用 Nodejs sdk。

根据 Conversation Api,这只是在响应中放入正确的 json 的问题,但是不清楚如何让 Api.ai 填写此 json.

我已经阅读了 docs here ,但仍然不清楚。

示例代码或更详细的文档对于非 nodejs 开发人员来说非常有用。我在 Java 工作,但是对 Api.ai 如何为 Google 操作构建响应 json 的一个很好的解释将对所有语言的开发人员都有帮助。

你要研究API.AI HTTP API here。作为参考,尝试设置节点示例 - 这样您就可以看到正在运行的 JSON 文件。

对于权限,请尝试 Name Psychic 示例。

你即将离任的 JSON 会是这样的:

{
  "contextOut": [
    {
      "lifespan": 100, 
      "name": "_actions_on_google_", 
      "parameters": {}
    }, 
    {
      "lifespan": 1, 
      "name": "requesting_permission", 
      "parameters": {}
    }
  ], 
  "data": {
    "google": {
      "expect_user_response": true, 
      "is_ssml": false, 
      "no_input_prompts": [], 
      "permissions_request": {
        "opt_context": "To send you something", 
        "permissions": [
          "DEVICE_PRECISE_LOCATION"
        ]
      }
    }
  }, 
  "speech": "PLACEHOLDER_FOR_PERMISSION"
}

Java 程序员在 Google 上使用 Actions 现在有了另一个选择。有一个官方SDK的开源端口到Java/Kotlin。 API 非常相似,所以对于 location 它会是这样的:

app.askForLocation()

https://github.com/TicketmasterMobileStudio/actions-on-google-kotlin