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

can I stop parameters from being truncated?

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

{
"responseId": "169a5307-2148-4d3d-bdd8-a50a1c365aaf",
"queryResult": {
    "queryText": "set my key to 16FF43FE-A8D9-xxxx-xxxx-xxxxxxxxxxxx",
    "parameters": {
        "APIKey": "16FF43FE-A8D9"

这里有什么建议吗?

Dialogflow 无法轻松解析标识符和键,因此您可能会遇到类似这样的问题。

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

只是与其他想做类似事情的人分享我的解决方案。这是一个边缘案例,即使对我的助手来说也是如此,但却是必要的。

  function setKey(agent) {
    var myRegexp = /my (?:key|API key) is (.*)/gi;
    var queryText = request.body.queryResult.queryText;
    var match = myRegexp.exec(queryText);
    conv.user.storage.apiKey = match[1];
    conv.ask('Ok, saving ' + match[1]);
    agent.add(conv);
  }