标签: alexa-skills-kit

如何在 AWS Lambda 项目中存储和加载自定义 json 应用程序设置和连接字符串?

我正在 Visual Studio 中开发 Alexa Skills Kit 应用程序,并在 .NET Core 2.0 中创建了 AWS Lambda 项目。创建项目时,它会自动附带一个名为 aws-lambda-tools-defaults.json 的文件。此处的设置由 AWS Lambda 函数使用。

现在,我想存储我自己的应用程序设置和连接字符串以供应用程序使用。如何存储我的设置并将其写入代码的首选途径是什么?

我已经添加了名为 Microsoft.Extensions.Configuration.Json 的 NuGet 包。但我不确定我从这里做什么。

1) 我是否需要创建另一个 json 文件,或者我可以使用现有文件 aws-lambda-tools-defaults.json 吗?如果我确实需要创建一个新文件,它应该被命名为什么?

2)是否需要将构造函数添加到 Function.cs 文件中才能加载 json 文件?

3)我可以编写哪些代码来实际获取我的设置和连接字符串?

我在这里有点迷失,所以任何建议都会很有帮助!谢谢你!

json amazon-web-services visual-studio .net-core alexa-skills-kit

5
推荐指数
1
解决办法
3354
查看次数

访问 Amazon Alexa Console console.log() 内容

我正在使用基于在线的Amazon Alexa Console 测试套件AWS Lambda来开发 Alexa 技能。如何访问 的内容console.log('STATE: ' + stateAbbreviation)

Lambda函数代码:

function getSmallImage(stateAbbreviation) {
  console.log('STATE: ' + stateAbbreviation);
  return getImageUrl(400, 720, stateAbbreviation);
}
Run Code Online (Sandbox Code Playgroud)

amazon-web-services node.js console.log alexa-skills-kit

5
推荐指数
1
解决办法
4504
查看次数

Alexa 技能 .getResponse() 有什么作用?

我正在学习 js 并创建简单的 Alexa 技能。我想更好地理解模板代码,并且正在研究https://ask-sdk-for-nodejs.readthedocs.io上的文档,但我找不到这个问题的答案。.getResponse() 方法在每个处理程序模板中使用。它也用在 SessionEndedIntent 处理程序中,这意味着它不能成为等待用户输入的方法。我尝试谷歌搜索但找不到答案。谁能解释一下 .getResponse() 的作用,或者向我指出相关文档?谢谢。

const SessionEndedRequestHandler = {
canHandle(handlerInput) {
    return handlerInput.requestEnvelope.request.type === 'SessionEndedRequest';
},
handle(handlerInput) {
    // Any cleanup logic goes here.
    return handlerInput.responseBuilder.getResponse();
}
Run Code Online (Sandbox Code Playgroud)

javascript alexa-skills-kit

5
推荐指数
1
解决办法
1766
查看次数

AWS Alexa技能与oauth 2链接

大家好

我是 Amazon Alexa 的新手,我有一项使用 PHP 与 oauth 2.0 链接到 Alexa Skill 帐户的工作。

我已成功配置所有内容并获取代码,Auth Code Grant但是当我在 Chrome 浏览器中运行代码时,它会产生Account linking Failed问题,但当我在 Firefox 中运行相同的 URL 时,它会Amazon linking failed生成ERROR=missing-state.

请帮助我解决我的问题,任何帮助将不胜感激。

php oauth-2.0 alexa-skills-kit

5
推荐指数
1
解决办法
539
查看次数

Alexa 模拟器上显示“请求的技能响应存在问题”

我正在尝试使用示例“hello world”lambda 函数设置示例 Alexa 技能集。但是在Alexa模拟器上测试时,显示There was a problem with the requested skills response如下图。 在此输入图像描述

我创建了一个示例 Alexa 技能集,并使用端点部分中的 ARN 与 AWS lambda 函数连接。

amazon-web-services aws-lambda alexa-skills-kit

5
推荐指数
1
解决办法
8424
查看次数

如何通过 CloudFormation 为 lambda 函数配置 Alexa Skills Kit 触发器?

我正在开发 Alexa 技能,并希望使用 CloudFormation 为我的技能部署基础设施。

到目前为止,IAM 角色、策略和 lambda 函数部署工作正常。我缺少的是 Alexa Skill Kit 中用于 lambda 函数的触发器。

目前我必须在 AWS 控制台中手动创建此触发器:

AWS 控制台 UI 为 lambda 函数添​​加 Alexa Skills Kit 触发器

或者通过 CLI:

aws lambda add-permission --function-name DeutscheDeklinationLambdaFunction --statement-id 1 --action lambda:invokeFunction --principal alexa-appkit.amazon.com --region eu-west-1
Run Code Online (Sandbox Code Playgroud)

但我更愿意通过 CloudFormation 配置此触发器。我认为应该是https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-eventsourcemapping.html,但我找不到如何为 Alexa Skills Kit 实现这一点。

amazon-web-services aws-cloudformation alexa-skills-kit

5
推荐指数
1
解决办法
918
查看次数

亚马逊 Alexa 技能无法正确运行正在运行的 Python 代码

我正在用 python 开发一个简单的亚马逊 Alexa 技能。我已经为这个简单的应用程序编写了所有代码,并将其加载到我的 lambda 函数中,我已经测试过 lambda 已加载我导入的库并且它可以与它们一起使用,但是当我使用这个最终代码时,它会出现“所请求的技能响应出现问题” ”

    def handle(self, handler_input):
        # type: (HandlerInput) -> Response

        # https://repl.it/repls/UselessOptimalPipeline

        url = "http://jokepro.dx.am/"

        source = requests.get(url)
        bs4call = bs4.BeautifulSoup(source.text, "html.parser")

        obj = bs4call.find('object')

        text = requests.get(url + obj['data']).text
        # print(text) # <-- to print the textfile

        finalJoke = random.choice(text.splitlines())

        speak_output = finalJoke

        return (
            handler_input.response_builder
                .speak(speak_output)
                #.ask()
                .response
        )
Run Code Online (Sandbox Code Playgroud)

这是处理函数

lambda 是否与该代码中的任何内容冲突?为什么它不起作用?

更新:这是一些相关信息

要求.txt

boto3==1.9.216
ask-sdk-core==1.11.0
bs4==4.8.2
requests==2.22.0
Run Code Online (Sandbox Code Playgroud)

没有给出任何表示错误的响应...

这一切都不要通过亚马逊开发控制台https://developer.amazon.com/alexa/console/ask

python amazon-web-services python-3.x aws-lambda alexa-skills-kit

5
推荐指数
1
解决办法
791
查看次数

aws lambda,ask_sdk_core 模块未导入

ask_sdk_core包含在我的 lambda 函数requirements.txt文件中。但是,当我运行实际函数时, ask_sdk_core不会导入。我正在跟踪在 中找到的 cake walk 示例, https://github.com/alexa/skill-sample-python-first-skill/tree/master/module-1 但正在尝试在我的个人 AWS 帐户上创建 lambda,而不是在 Alexa 托管的 lambda 上。

当我将 Alexa 技能指向 Alexa 托管的技能时,技能会按预期运行,但是当指向我通过从 Alexa 技能套件复制代码创建的 lambda 时,lambda 函数不会返回任何结果。

包含 lambda 在个人 AWS 账户上的照片。我尝试更改不同函数名称的多个值,但似乎没有任何效果。

控制台中的 Lambda 控制台 2 中的 Lambda

lambda执行结果:

Response:
{
  "errorMessage": "Unable to import module 'lambda_function': No module named 'ask_sdk_core'",
  "errorType": "Runtime.ImportModuleError"
}

Request ID:
"7f220b6d-49e4-4fbe-99b5-e5cc1d9c129a"

Function Logs:
START RequestId: 7f220b6d-49e4-4fbe-99b5-e5cc1d9c129a Version: $LATEST
[ERROR] Runtime.ImportModuleError: Unable to import module 'lambda_function': No module named 'ask_sdk_core'END RequestId: 7f220b6d-49e4-4fbe-99b5-e5cc1d9c129a
REPORT RequestId: 7f220b6d-49e4-4fbe-99b5-e5cc1d9c129a  Duration: 11.39 …
Run Code Online (Sandbox Code Playgroud)

python-module amazon-web-services python-3.x aws-lambda alexa-skills-kit

5
推荐指数
1
解决办法
2698
查看次数

将Netatmo气象站连接到Amazon Echo(Alexa)

[以下回答问题的完整教程.欢迎反馈!]

我正在尝试创建一个AWS Lambda函数,用于Amazon Alexa技能从我的Netatmo weatherstation获取天气信息.基本上,我需要通过http请求连接到Netatmo云.

这是我的代码片段,http请求是为临时访问令牌完成的,请求没问题,但结果正文是正文:{"error":"invalid_request"}.这可能是什么问题?

var clientId = "";
var clientSecret = "";
var userId="a@google.ro"; 
var pass=""; 

function getNetatmoData(callback, cardTitle){
    var sessionAttributes = {};

    var formUserPass = { client_id: clientId, 
    client_secret: clientSecret, 
    username: userId, 
    password: pass, 
    scope: 'read_station', 
    grant_type: 'password' };

    shouldEndSession = false;
    cardTitle = "Welcome";
    speechOutput =""; 
    repromptText ="";

    var options = {
        host: 'api.netatmo.net',
        path: '/oauth2/token',
        method: 'POST',
        headers: {
            'Content-Type': 'application/x-www-form-urlencoded',
            'client_id': clientId,
            'client_secret': clientSecret,
            'username': userId, 
            'password': pass, 
            'scope': 'read_station', 
            'grant_type': 'password'
        }
    }; …
Run Code Online (Sandbox Code Playgroud)

javascript amazon-web-services aws-lambda alexa-skill alexa-skills-kit

4
推荐指数
1
解决办法
4710
查看次数

将AMAZON.DURATION添加到当前时间

我正在编写一个Alexa技能,我希望将记录存储在未来时间的数据库中.例如,如果用户说"在两小时内",我想将时间存储在两小时后.

到目前为止,我发现我可以使用AMAZON.DURATION插槽类型将这样的单词转换为持续时间,但我还没想出如何将其添加到当前日期.

持续时间如下:PT2H.P表示持续时间,T表示时间单位,2H表示2小时.我自己可以解析这个问题,但是我希望有一些内置功能可以做到这一点?

node.js alexa-skills-kit

4
推荐指数
1
解决办法
657
查看次数