如何配置 Alexa 以访问 REST API?

物联网 亚历克斯 亚马逊回声 语音识别
2021-06-15 22:46:45

我有几个灯连接到连接到wiolink 的继电器

我可以通过 REST API 打开和关闭灯,如下所示:

curl https://us.wio.seeed.io/v1/node/GroveRelayD0/onoff/[onoff]?access_token=xxxxx

如何通过带有 Echo Dot 的 Alexa 访问此 REST API?

1个回答

请参阅这些说明

创建AWS 开发人员帐户和 AWS 帐户。

在 AWS 控制台中

  • 创建一个 lambda 函数。在 lambda 函数中包含一些将访问 API 的代码。这可以是 python 或 java 或 node.js。

这是一个python脚本。更改modify_state为 1 或 0

import urllib2

def modify_state( port, state, token):
    url = 'https://us.wio.seeed.io/v1/node/%s/onoff/%s?access_token=%s' % (port, state, token)
    req = urllib2.Request(url,'')
    response = urllib2.urlopen(req)

def lambda_handler(event, context):
    modify_state('GroveRelayD0', <STATE:0:1>, '<APIKEY')
    # TODO implement
    return {
        'version': '1.0',
        'sessionAttributes': {},
        'response': {
            'outputSpeech': {
                'type': 'PlainText',
                'text': '<whatever whitty remark alexa should say>'
            },
            'card': {
                'type': 'Simple',
                'title': "SessionSpeechlet - foo",
                'content': "SessionSpeechlet - bar" 
            },
            'reprompt': {
                'outputSpeech': {
                    'type': 'PlainText',
                    'text': 'I know right'
                }
            },
            'shouldEndSession': True
        }
    }
  • 确保发布新版本(复制右上角的 ARN,稍后您将需要它)

aws lambda 代码

  • 将“触发器”设置为 alexa 技能

aws 触发器配置


在开发者控制台中

  • 创造技能 创建技能对话框

  • 使用意图和示例话语创建交互模型 意图模式对话框

  • 链接端点

端点配置对话框

您可以跳过最后 2 个步骤。该技能将在开发模式下运行,只有您才能访问它。仅当您想与世界上的任何人分享您的技能时,才完成最后 2 个步骤。