在开发模式下在 alexa 移动应用程序或 echo 设备中测试 CanFullfillmentRequest

Test CanFullfillmentRequest in alexa mobile app or echo device during development mode

我正在创建一个 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 文件,其中包含请求类型设置为 CanFulfillIntentRequest 的输入 JSON。

以下是请求的示例 .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