如何在不使用SDK的情况下向Google提出操作许可?
我想知道用户的名称,但是我不能使用nodejs sdk,因为我使用另一种语言。
我怎样才能请求许可?
我宁愿与正常的JSON响应的方式。
我砍了这个最小的脚本来获取nodejs sdk将返回的JSON响应:
gaction.js :
let ApiAiAssistant = require('./actions-on-google.js').ApiAiAssistant; const assistant = new ApiAiAssistant({request: { get:function() {} }, response: { append:function(args) {}, status:function(code) { console.log("code="+code); return { send:function(resp) { console.log("response="+JSON.stringify(resp)); } } } }, sessionStarted:false}); let permission = assistant.SupportedPermissions.NAME; assistant.askForPermission('To pick you up', permission);
我不是node.js程序员,所以这可能不是一个最佳的解决方案。 当你安装节点并运行npm install debug
。 最后一步是下载主要的sdk文件 actions-on-google.js 。 当你完成了所有这些,你可以运行node gaction.js
你会得到这个输出:
代码= 200
响应= { “讲话”: “PLACEHOLDER_FOR_PERMISSION”, “数据”:{ “谷歌”:{ “expect_user_response”:真 “is_ssml”:假 “no_input_prompts”:[], “permissions_request”:{ “opt_context”:”要接你“,”权限“:[”NAME“]}}},”contextOut“:[{”name“:”_ actions_on_google _“,”lifespan“:100,”parameters“:{}}]}
如果你现在发送上面的json,你会从谷歌家中被问到。 玩的开心!
https://developers.google.com/actions/apiai/webhook上记录了带有操作的API.AI webhook的请求/响应JSON格式
正如您发现的那样, data.google.permissions_request
属性包含有关请求的两个字段:
-
opt_context
包含一个字符串,这个字符串是为了给你一些关于你为什么要求这些信息的上下文。 -
permissions
是一个字符串数组,用于指定要请求的信息。 字符串可以具有值- 名称
- DEVICE_COARSE_LOCATION
- DEVICE_PRECISE_LOCATION
如果您使用的是Java或Kotlin,则有一个非官方的SDK。 它几乎完全匹配官方的SDK API。 https://github.com/TicketmasterMobileStudio/actions-on-google-kotlin