Comment configurer Alexa pour accéder à une API REST?

20

J'ai plusieurs lumières connectées à des relais connectés à un wiolink

Je peux allumer et éteindre les lumières via l'API REST, comme ceci:

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

Comment puis-je accéder à cette API REST via Alexa avec un point d'écho?

spuder
la source

Réponses:

14

Voir ces instructions .

Créez un compte développeur AWS et un compte AWS.

Dans la console AWS

  • Créez une fonction lambda. Incluez dans la fonction lambda du code qui accédera à l'API. Cela peut être python ou java ou node.js.

Voici un script python. Changez modify_statepour être 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
        }
    }
  • Assurez-vous de publier une nouvelle version (copiez l'ARN en haut à droite, vous en aurez besoin plus tard)

aws lambda code

  • Réglez le «déclencheur» sur les compétences d'Alexa

configuration de déclenchement aws


Dans la console développeur

  • Créer une compétence créer un dialogue de compétences

  • Créer un modèle d'interaction avec une intention et un exemple d'énoncé boîte de dialogue du schéma d'intention

  • Lier le point final

boîte de dialogue de configuration du point de terminaison

Vous pouvez ignorer les 2 dernières étapes. La compétence s'exécutera en mode développement et vous seul pourrez y accéder. Suivez les 2 dernières étapes uniquement si vous souhaitez partager vos compétences avec n'importe qui dans le monde.

spuder
la source
1
Si on ne publie pas, je dois connecter mon Echo à un compte développeur, non?
Helmar