Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js alexa请求令牌未被传递_Node.js_Alexa_Alexa Skills Kit - Fatal编程技术网

Node.js alexa请求令牌未被传递

Node.js alexa请求令牌未被传递,node.js,alexa,alexa-skills-kit,Node.js,Alexa,Alexa Skills Kit,我真的很震惊,Alexa官方文档中有一些东西,但它在代码中不起作用。我只是尝试创建一个列表api,并执行以下操作: 具体来说,本节将讨论ListManagementServices,以使用Alexa列表的CRUD 如果单击我提供的第二个链接,您将清楚地看到它们的状态是:可以从此.event.context.System.user.permissions.approvementToken的请求中检索令牌 好的,很好,转到我的代码,插入this.event.context.System.user.p

我真的很震惊,Alexa官方文档中有一些东西,但它在代码中不起作用。我只是尝试创建一个
列表
api,并执行以下操作:

具体来说,本节将讨论
ListManagementServices
,以使用Alexa列表的CRUD

如果单击我提供的第二个链接,您将清楚地看到它们的状态是:可以从此.event.context.System.user.permissions.approvementToken的请求中检索令牌

好的,很好,转到我的代码,插入
this.event.context.System.user.permissions.approventToken
,结果在cloudwatch中得到一个错误,说
无法获取未定义的
的ApproventToken。对此我完全目瞪口呆,我记录了
this.event.context
以查看我正在处理的对象类型。以下是对象:

{
    "AudioPlayer": {
        "playerActivity": "IDLE"
    },
    "Display": {
        "token": ""
    },
    "System": {
        "application": {
            "applicationId": "amzn1.ask.skill.0beed0e6-51a1-4c6d-ac33-ffc5917865b7"
        },
        "user": {
            "userId": "amzn1.ask.account.AGCMLFZZENPXOPVJNBZYE3MEATUMFIDBZSABYFXORTYX2NH5DYTKR2YGRNEHSKDCQCWA3Q33GIHZIKVI47GON36TEE3XSNXASFYYNS46OXAEAHC3M3QMOFEGH26CCO7VDTEEW5WJW4VIJVYC2XUPHTI73N7ZI5IKH66MOMX5XQTHKUVRLPOAK4ZPJALLZWFJOT4PDQXZP3MVBFA"
        },
        "device": {
            "deviceId": "amzn1.ask.device.AG2Q3NSHYI3KAHOESWBELUSD7GBARMROPJI6NWNWMBHTNGMK3TCKP5PNDAS2AN34JWCCIKURX24EMFCTRMJZGIXSA2YBCSDOOOFQ52PGCZGFDK3RIUE6OK2Z5H7YIYBNBDU7UN5UL2PMXAUEK2IWHILS7SFQ",
            "supportedInterfaces": {
                "AudioPlayer": {},
                "Display": {
                    "templateVersion": "1.0",
                    "markupVersion": "1.0"
                }
            }
        },
        "apiEndpoint": "https://api.amazonalexa.com",
        "apiAccessToken": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImtpZCI6IjEifQ.eyJhdWQiOiJodHRwczovL2FwaS5hbWF6b25hbGV4YS5jb20iLCJpc3MiOiJBbGV4YVNraWxsS2l0Iiwic3ViIjoiYW16bjEuYXNrLnNraWxsLjBiZWVkMGU2LTUxYTEtNGM2ZC1hYzMzLWZmYzU5MTc4NjViNyIsImV4cCI6MTUxOTc3MDI0OSwiaWF0IjoxNTE5NzY2NjQ5LCJuYmYiOjE1MTk3NjY2NDksInByaXZhdGVDbGFpbXMiOnsiY29uc2VudFRva2VuIjpudWxsLCJkZXZpY2VJZCI6ImFtem4xLmFzay5kZXZpY2UuQUcyUTNOU0hZSTNLQUhPRVNXQkVMVVNEN0dCQVJNUk9QSkk2TldOV01CSFROR01LM1RDS1A1UE5EQVMyQU4zNEpXQ0NJS1VSWDI0RU1GQ1RSTUpaR0lYU0EyWUJDU0RPT09GUTUyUEdDWkdGREszUklVRTZPSzJaNUg3WUlZQk5CRFU3VU41VUwyUE1YQVVFSzJJV0hJTFM3U0ZRIiwidXNlcklkIjoiYW16bjEuYXNrLmFjY291bnQuQUdDTUxGWlpFTlBYT1BWSk5CWllFM01FQVRVTUZJREJaU0FCWUZYT1JUWVgyTkg1RFlUS1IyWUdSTkVIU0tEQ1FDV0EzUTMzR0lIWklLVkk0N0dPTjM2VEVFM1hTTlhBU0ZZWU5TNDZPWEFFQUhDM00zUU1PRkVHSDI2Q0NPN1ZEVEVFVzVXSlc0VklKVllDMlhVUEhUSTczTjdaSTVJS0g2Nk1PTVg1WFFUSEtVVlJMUE9BSzRaUEpBTExaV0ZKT1Q0UERRWFpQM01WQkZBIn19.aKkY8UG0vSs-uP5IoOk-3_MflWI-d9KpIcWSba8YZSEGulOUeyJjHx9qfouOBO3o8WjqeMdLiE1agu6GohXaGeV4jFty9wpg2_Cp_RIAqSpPm-THDt48yRK_6O7PXZjVzgtUUrg81Gi8uceDy7bY42bP7_if5JDpTFLfRxuo7Cj5PmjhqA9aKpdV0PTUWCo6BFrOC9EoNZqjxt-MZrHyR0UQDIO4Ly-y-WfVIf4wqD_VR7YL3f9MW81UcH0XGA6G9_xwvKBsA-VlkideSqudnynM1fUb68HY42qzRn7AzlUPvTcu7ZUuJudc_hTyHDXmcB8J2XBkMWsZJLJCR8NlMA"
    }
}
如您所见,
用户
对象中显然没有
权限
对象,其他任何地方也没有
令牌
。我唯一看到的是
apiAccessToken
,当我尝试使用它时,什么也没发生。我的意思是,我的以下控制台日志均未被命中:

const lms = new Alexa.services.ListManagementService();

  lms.createList(listObj, token)
     .then((data) => {
       console.log(`list retrieved: ${JSON.stringify(data)}`);
       this.context.succeed();
     })
     .catch((err) => {
       console.log(err.message);
     });
转到应用程序,未列出任何列表。我想它失败了?我没有办法知道,因为两个控制台日志都没有被命中,告诉我它是成功的还是错误的(假设有错误)


有人能给我解释一下如何得到这个需要的代币吗?这些列表是否会自动显示在配套应用程序中?我确实在某个地方读到他们应该这样做,但同样,文档显然不是最新的,我只是想知道应该期待什么,以及如何看到这是否有效

这里的问题是您没有读取
列表的权限。因此,user.permissions.approvementToken未定义
尝试下载Alexa应用程序,使用我的亚马逊用户登录

在调用api之前,我请求权限(在本例中,卡片请求用户电子邮件的权限许可)


应用程序的主页应显示一张卡,以便访问。因此,您可以获得具有正确权限的apiAccessToken和user.permissions.approvementToken。

无法立即发现任何错误,但您是否确保在配置技能时请求列表权限?查看alexa的文档,了解有关列表权限的更多信息
 {"type": "AskForPermissionsConsent",

           "permissions": [

              "alexa::profile:email:read" //replace with the permissions that you need

          ])}