我成功地能够在google nodejs库的帮助下请求用户位置,但我更像是java人,我需要在java中执行此操作。
https://developers.google.com/actions/assistant/helpers#json
How can I request the user's location in API.ai?
Requesting User Location from Google Actions with Api.ai
从上面的链接中,我发现只有json响应才有可能。
我在api.ai中创建了我的poc应用程序,它在json响应下面返回
{
"conversationToken": {
"state": null,
"data": {}
},
"expectUserResponse": true,
"expectedInputs": [
{
"inputPrompt": {
"initialPrompts": [
{
"textToSpeech": "PLACEHOLDER_FOR_PERMISSION"
}
],
"noInputPrompts": null
},
"possibleIntents": [
{
"intent": "actions.intent.PERMISSION",
"inputValueData": {
"@type": "type.googleapis.com/google.actions.v2.PermissionValueSpec",
"optContext": "Requesting Location.",
"permissions": [
"DEVICE_COARSE_LOCATION"
]
}
}
]
}
]
}
{
"contextOut": [
{
"lifespan": 100,
"name": "_actions_on_google_",
"parameters": null
},
{
"lifespan": 5,
"name": "requesting_permission",
"parameters": null
}
],
"data": {
"google": {
"expect_user_response": true,
"is_ssml": false,
"no_input_prompts": null,
"permissions_request": {
"opt_context": "Requesting Location.",
"permissions": [
"DEVICE_COARSE_LOCATION"
]
}
}
},
"speech": "PLACEHOLDER_FOR_PERMISSION"
}
此回报: PLACEHOLDER TEXT
我想知道我这样做的方式是否有可能。如果是的话,我做错了什么?
请帮忙。
答案 0 :(得分:1)
对于初学者 - 是的,这是可能的。您可以使用JSON来请求权限。所有node.js库都有助于格式化JSON。
大部分看起来都是正确的,但我认为这里有两种不同类型的错误。
首先,我怀疑在您的第一个示例中有一些字段导致API.AI/Google出现问题。空的两个字段expectedInputs.inputPrompt.noInputPrompts
和state
可能会导致问题。 noInputPrompts
字段应该只是一个字符串(任何字符串都可以),data.google
应该是一个空数组。
此外,您表示您正在使用API.AI,这需要发回其他信息以及您在
{
"speech": "PLACEHOLDER_FOR_PERMISSION",
"contextOut": [
{
"name": "_actions_on_google_",
"lifespan": 100,
"parameters": {}
}
],
"data": {
"google": {
"expectUserResponse": true,
"isSsml": false,
"noInputPrompts": [],
"systemIntent": {
"intent": "actions.intent.PERMISSION",
"data": {
"@type": "type.googleapis.com/google.actions.v2.PermissionValueSpec",
"optContext": "To pick you up",
"permissions": [
"NAME",
"DEVICE_PRECISE_LOCATION"
]
}
}
}
}
}
部分指明的大部分信息(您有在你的第二个例子中,但不是你的第一个例子)。有关API.AI响应的基本布局,请参阅https://api.ai/docs/fulfillment#response;有关Google智能助理使用的其他字段,请参阅https://developers.google.com/actions/apiai/webhook#response。
以下是我生成的一些有效的输出:
/*global google */