是否可以使用 AWS Lambda Web 控制台中的 Cloud9 代码编辑器访问客户资料 API?如果是这样,如何?
Is accessing the Customer Profile API possible using the Cloud9 code editor in the AWS Lambda web console? If so, how?
首先,我是 Alexa 技能开发的新手,所以我有很多东西要学。我一直在努力解决这个问题。我找到了各种教程并查看了亚马逊提供的通过 Alexa 技能访问客户资料 API 的信息,但仍然无法获得客户的 phone 号码。
我正在使用 AWS 控制台内联代码编辑器 (Cloud9)。大多数(如果不是全部的话)指令使用类似 'axios'、'request' 或 'https' 的模块,我认为除非您使用 ask-cli(请纠正我,如果我错了)。此外,我按照教程最初创建了技能,该技能让我使用 Skillinator.io 在 Amazon Developer 控制台中基于技能的 JSON 创建 AWS Lambda 模板。客户资料 API 教程中的代码格式与 Skillinator.io 工具提供的格式不匹配。 Intent 处理程序的设置方式不同,我相信这就是我的困惑所在。这是一个例子:
Skillinator.io代码:
const handlers = {
'LaunchRequest': function () {
welcomeOutput = 'Welcome to the Alexa Skills Kit!';
welcomeReprompt = 'You can say, Hello!';
this.emit(':ask', welcomeOutput, welcomeReprompt);
},
};
教程代码:
const LaunchRequestHandler = {
canHandle(handlerInput) {
return handlerInput.requestEnvelope.request.type === 'LaunchRequest';
},
handle(handlerInput) {
const speechText = 'Welcome to the Alexa Skills Kit!';
return handlerInput.responseBuilder
.speak(speechText)
.reprompt(speechText)
.withSimpleCard('Hello World', speechText)
.getResponse();
}
};
任何人都可以阐明并帮助我理解为什么处理程序的格式不同,以及如何(如果可能)创建对客户配置文件的请求 API?
我已经完成了必要的 permissions/account 链接步骤。
提前致谢。
编辑:
我了解到语法的差异是由于 sdk 的不同版本,Skillinator 是 'alexa-sdk' 或 v1 以及使用 'ask-sdk' 或 v2 的各种教程。
我仍然很好奇是否可以通过 AWS 控制台中的内联代码编辑器使用 'axios' 或 'request' 等模块,或者是否可以访问客户资料 API 使用 sdk v1?
我决定用我所学的来回答这个问题,希望其他人不会像我试图理解它那样浪费时间。
基本上,可以使用 AWS 控制台的内嵌代码编辑器在 sdk v1 中使用上述模块,但您必须为您的代码和任何必要的模块创建一个 .zip 文件,并将该 .zip 文件上传到λ.
我已经编辑了我的原始答案,以包含我对意图处理程序中语法差异的发现。
据我所知(如果我错了请纠正我),无法使用 sdk v1.
访问客户资料 API
首先,我是 Alexa 技能开发的新手,所以我有很多东西要学。我一直在努力解决这个问题。我找到了各种教程并查看了亚马逊提供的通过 Alexa 技能访问客户资料 API 的信息,但仍然无法获得客户的 phone 号码。
我正在使用 AWS 控制台内联代码编辑器 (Cloud9)。大多数(如果不是全部的话)指令使用类似 'axios'、'request' 或 'https' 的模块,我认为除非您使用 ask-cli(请纠正我,如果我错了)。此外,我按照教程最初创建了技能,该技能让我使用 Skillinator.io 在 Amazon Developer 控制台中基于技能的 JSON 创建 AWS Lambda 模板。客户资料 API 教程中的代码格式与 Skillinator.io 工具提供的格式不匹配。 Intent 处理程序的设置方式不同,我相信这就是我的困惑所在。这是一个例子:
Skillinator.io代码:
const handlers = {
'LaunchRequest': function () {
welcomeOutput = 'Welcome to the Alexa Skills Kit!';
welcomeReprompt = 'You can say, Hello!';
this.emit(':ask', welcomeOutput, welcomeReprompt);
},
};
教程代码:
const LaunchRequestHandler = {
canHandle(handlerInput) {
return handlerInput.requestEnvelope.request.type === 'LaunchRequest';
},
handle(handlerInput) {
const speechText = 'Welcome to the Alexa Skills Kit!';
return handlerInput.responseBuilder
.speak(speechText)
.reprompt(speechText)
.withSimpleCard('Hello World', speechText)
.getResponse();
}
};
任何人都可以阐明并帮助我理解为什么处理程序的格式不同,以及如何(如果可能)创建对客户配置文件的请求 API?
我已经完成了必要的 permissions/account 链接步骤。
提前致谢。
编辑:
我了解到语法的差异是由于 sdk 的不同版本,Skillinator 是 'alexa-sdk' 或 v1 以及使用 'ask-sdk' 或 v2 的各种教程。
我仍然很好奇是否可以通过 AWS 控制台中的内联代码编辑器使用 'axios' 或 'request' 等模块,或者是否可以访问客户资料 API 使用 sdk v1?
我决定用我所学的来回答这个问题,希望其他人不会像我试图理解它那样浪费时间。
基本上,可以使用 AWS 控制台的内嵌代码编辑器在 sdk v1 中使用上述模块,但您必须为您的代码和任何必要的模块创建一个 .zip 文件,并将该 .zip 文件上传到λ.
我已经编辑了我的原始答案,以包含我对意图处理程序中语法差异的发现。
据我所知(如果我错了请纠正我),无法使用 sdk v1.
访问客户资料 API