Actions on google 我可以阻止参数被截断吗?

Actions on google 我可以阻止参数被截断吗?,actions-on-google,dialogflow-es,Actions On Google,Dialogflow Es,我需要为用户保存API密钥,以便他们可以使用我的服务。我已经解决了持久性和检索问题,我可以在我的浏览器中剪切和粘贴密钥,我希望用户会这样做。不理想,但这是一次性的事情。我遇到的问题是在响应json中传递的参数是一个截断的值。这里有一个例子 { “响应ID”:“169a5307-2148-4d3d-bdd8-a50a1c365aaf”, “查询结果”:{ “queryText”:“将我的密钥设置为16FF43FE-A8D9-xxxx-xxxx-XXXXXXXXXX”, “参数”:{ “APIKe

我需要为用户保存API密钥,以便他们可以使用我的服务。我已经解决了持久性和检索问题,我可以在我的浏览器中剪切和粘贴密钥,我希望用户会这样做。不理想,但这是一次性的事情。我遇到的问题是在响应json中传递的参数是一个截断的值。这里有一个例子

{
“响应ID”:“169a5307-2148-4d3d-bdd8-a50a1c365aaf”,
“查询结果”:{
“queryText”:“将我的密钥设置为16FF43FE-A8D9-xxxx-xxxx-XXXXXXXXXX”,
“参数”:{

“APIKey”:“16FF43FE-A8D9”
Dialogflow并不容易解析标识符和键,因此您可能会看到类似的问题


在良好的voice UI设计中,您不希望手动输入API键,但一种解决方法是从Dialogflow的原始查询文本中获取完整键,而不是尝试将其作为参数提取。

只是为其他希望执行类似操作的人共享我的解决方案。这是一种边缘情况,即使对我的助手来说也是如此,但却是必要的

函数设置键(代理){
var myRegexp=/my(?:key | API key)是(.*)/gi;
var queryText=request.body.queryResult.queryText;
var match=myRegexp.exec(queryText);
conv.user.storage.apiKey=match[1];
conv.ask('确定,保存'+匹配[1]);
代理添加(conv);

}
是的,不太理想,但我需要代表请求者与API交谈以实现。我希望这可能是一种更干净的方式,然后解析原始查询文本,但这很简单。谢谢@Nick