在开发模式期间在 alexa 移动应用程序或回显设备中测试 CanFullfillmentRequest

问题描述

我正在创建一个 alexa 技能,我想在没有调用名称的情况下触发我的所有命令,我已经通过跟随 (https://developer.amazon.com/en-US/docs/alexa/custom-skills/implement-canfulfillintentrequest-for-name-free-interaction.html#invoke-and-test-the-skill) 这个 url 来实现 CanFullfillmentRequest 并使用 json 文件从模拟器测试它。>

现在我想在移动应用环境中测试这个。

我该如何测试?

是否只有一种方法可以提交我的技能并在实时模式下测试此功能?或者有其他方法可以测试这个。

#name-free-intrection

解决方法

测试实现 CanFulfillIntentRequest 且尚未生效的技能的唯一方法是通过制作请求并将其发送到您的技能来模拟请求。

创建一个包含输入 JSON 的新 .json 文件,请求类型设置为 CanFulfillIntentRequest

以下是请求的示例 .json 文件。为您的技能替换适当的值。由于您无法使用支持 Alexa 的设备测试 CanFulfillIntentRequest,因此此文件的目的是从 Alexa 复制实际 CanFulfillIntentRequest 的内容,以便使用 ASK CLI 或在 Alexa 模拟器中进行测试。>

{
  "session":{
    "new": true,"sessionId":"SessionId.[unique-value-here]","application":{
      "applicationId":"amzn1.ask.skill.[unique-value-here]"
    },"attributes":{
      "key": "string value"
    },"user":{
      "userId":"amzn1.ask.account.[unique-value-here]"
    }
  },"request":{
    "type":"CanFulfillIntentRequest","requestId":"EdwRequestId.[unique-value-here]","intent":{
      "name":"MyNameIsIntent","slots":{
        "name":{
          "name":"name","value":"Jeff"
        }
      }
    },"locale":"en-US","timestamp":"2017-10-03T22:02:29Z"
  },"context":{
    "AudioPlayer":{
      "playerActivity":"IDLE"
    },"System":{
      "application":{
        "applicationId":"amzn1.ask.skill.[unique-value-here]"
      },"user":{
        "userId":"amzn1.ask.account.[unique-value-here]"
      },"device":{
        "supportedInterfaces":{

        }
      }
    }
  },"version":"1.0"
}

更多信息:https://developer.amazon.com/en-US/docs/alexa/custom-skills/implement-canfulfillintentrequest-for-name-free-interaction.html#create-the-json-for-testing-your-skill

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...