如何在不使用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属性包含有关请求的两个字段:

  1. opt_context包含一个字符串,这个字符串是为了给你一些关于你为什么要求这些信息的上下文。

  2. permissions是一个字符串数组,用于指定要请求的信息。 字符串可以具有值

    • 名称
    • DEVICE_COARSE_LOCATION
    • DEVICE_PRECISE_LOCATION

如果您使用的是Java或Kotlin,则有一个非官方的SDK。 它几乎完全匹配官方的SDK API。 https://github.com/TicketmasterMobileStudio/actions-on-google-kotlin

Interesting Posts