我正在尝试创建 Alexa for apps 自定义技能,以允许对我的 Android 应用程序进行语音控制。该应用程序的深层链接已经过验证并且可以正常工作,并且该技能本身已在 Alexa 开发人员控制台中部分实现(因此为根用户创建了 AWS 帐户以及 IAM 设置)。 ASK CLI 工具安装在我的 Windows 11 桌面上并且显然可以正常工作。
我编写了一个 Skills.json 文件,据我所知,该文件是正确的,但在尝试使用以下方法更新它时:
ask smapi update-skill-manifest -s SKILLID -g development --manifest "file:skill.json" --debug
我收到 400 错误,响应正文如下:
{"message":"Skill manifest is not valid.","violations":[{"code":"DENIED_FEATURE_ACCESS","message":"User is not allowed access to the \"AppLink V2\" feature and, therefore, cannot use string instance with value \"\"APP_LINKS_V2\"\" at \"$.manifest.apis.custom.interfaces[0].type\". Further information: \"[email protected]\".","validationDetails":{"feature":{"contact":"[email protected]","name":"AppLink V2"},"originalInstance":{"dataType":"string","propertyPath":"$.manifest.apis.custom.interfaces[0].type","type":"BODY","value":"\"APP_LINKS_V2\""}}}]}
这是 Skills.json(省略了某些值):
{
"manifest": {
"apis": {
"custom": {
"endpoint": {
"uri": "myendpointarn"
},
"interfaces": [
{
"type": "APP_LINKS_V2"
}
],
"appLink": {
"linkedApplications": [
{
"friendlyName": {
"default": "MobileShopper"
},
"catalogInfo": {
"type": "GOOGLE_PLAY_STORE",
"identifier": "com.ideasave.mobileshopper2"
},
"domains": [
"www.ideasave.com"
]
}
]
},
"regions": {
"NA": {
"endpoint": {
"uri": "lambdaarn1"
}
},
"EU": {
"endpoint": {
"uri": "lambdaarn2"
}
},
"FE": {
"endpoint": {
"uri": "lambdaarn3"
}
}
}
}
},
"manifestVersion": "1.0",
"permissions": [
{
"name": "alexa::devices:app:push_notifications"
}
],
"publishingInformation": {
"isAvailableWorldwide": true,
"locales": {
"en-US": {
"description": "Create shopping lists and recipes with MobileShopper on Android. Try saying 'Alexa, tell Mobile Shopper I need milk' to add milk to your needed items list.",
"examplePhrases": [
"Alexa, open Mobile Shopper",
"Alexa, tell Mobile Shopper to find wine",
"Alexa, tell Mobile Shopper I need milk",
"Alexa, tell Mobile Shopper I need recipe Rib Roast"
],
"name": "Mobile Shopper",
"summary": "Create shopping lists and recipes with MobileShopper on Android."
}
},
"testingInstructions": "Sample Testing Instructions."
}
}
}
我认为我的 IAM 配置可能缺少权限,但我没有找到看起来相关的权限更改/添加。
有谁知道可能导致此错误的原因是什么?无论如何,我发现用于设置 AWS 和 IAM 的教程非常难以遵循,因为其中显示和记录的步骤与 AWS 当前可用的 UI 完全不同。我完全有可能错过了一些重要的事情。
事实证明,发生错误的原因是亚马逊已经放弃了对 Alexa for Apps 的支持,因此不再可能开发这方面的技能。文档声称它仍然可以使用命令行工具使用,但我怀疑文档已经过时了。