Como faço para configurar o Alexa para acessar uma API REST?

20

Tenho várias luzes conectadas a relés conectados a um wiolink

Posso ligar e desligar as luzes por meio da API REST, da seguinte maneira:

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

Como posso acessar essa API REST através do Alexa com um Echo Dot?

spuder
fonte

Respostas:

14

Veja estas instruções .

Crio uma conta de desenvolvedor da AWS e uma conta da AWS.

No console da AWS

  • Crie uma função lambda. Inclua na função lambda algum código que acessará a API. Pode ser python ou java ou node.js.

Aqui está um script python. Mude modify_statepara 1 ou 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
        }
    }
  • Publique a nova versão (copie o ARN no canto superior direito, você precisará mais tarde)

código lambda aws

  • Defina o 'gatilho' para habilidades alexa

configuração do gatilho aws


No console do desenvolvedor

  • Crie uma habilidade criar um diálogo de habilidades

  • Crie um modelo de interação com uma intenção e uma expressão de amostra diálogo de esquema de intenção

  • Vincular o terminal

caixa de diálogo de configuração do terminal

Você pode pular as duas últimas etapas. A habilidade será executada no modo de desenvolvimento e somente você poderá acessá-la. Complete as duas últimas etapas apenas se desejar compartilhar sua habilidade com qualquer pessoa no mundo.

spuder
fonte
1
Se alguém não publica, tenho que conectar meu eco a uma conta de desenvolvedor, certo?
Helmar