Jeff a écrit :Oui et surtout avec un bref tuto, je vous suis mais je suis perdu....
Je vais m'y essayer, ça servira de base a une doc a ajouter sous github. Tout d'abord avoir sous la main le tuto original de madgeni
https://github.com/madgeni/alexa_domo qui s'applique tel quel sauf la création du skill qui a changé depuis.
Sous Amazon Developper Console, creation du skill:
=============================================
. Alexa Skill kit => Skill name, Default language (j'ai mis "FR"), "skill model" => Smart Home
puis une fois créé => payload version = v3
noter le skill id (copy to clipboard) et aller sur la console AWS Services
Sous AWS Management console, creation d'une lambda:
===========================================
. Aller dans région Ireland (obligatoire pour un skill Alexa), voir en haut a droite de la console
. Aller dans "Services" => Lambda => Functions
Creer une lambda ("function"): "From scratch", donner un nom, Runtime Python 3.6, Choose a role (a creer la 1ere fois ?) => lambda_basic _execution, puis:
-> Partie designer => "Add trigger" -> 'Alexa Smart Home' -> "configuration required' -> entrer le skill id (coller de developer console)
-> Partie "Function code" => "Code entry type" -> upload zip -> uploader l'archve zip
Mettre dans Handler:
lambda.event_handler (c'est le nom du <module>.<function> point d'entree de la lambda)
Coller/noter l'arn de la lambda "en haut a droite", type arn:aws:lambda:eu-west-1:...
S'assurer qu'on a bien fait "save", il est possible d'y revenir au besoin ensuite
Pas d'angoisse si toutes ces manips ne sont pas faites "consécutivement", la console lambda est parfois déroutante, on peut très bien le faire par "petite touches" en y revenant plusieurs fois tant qu'on a bien fait "Save".
Re Amazon developer console:
==========================
. Coller l'arn de la lambda dans le "Default endpoint" et aussi partie "Europe" (notre cas), j'ai laissé vide pour les autres régions
On a fait l'essentiel skill + lambda, reste le "souci" de l'account linking
Tout d'abord créer un "security profile" (voir doc de madgeni):
- Console developpeur,
https://developer.amazon.com/home.html, creer "Security profile": "Apps & Services" -> "Security Profile"
Puis dans la partie "Account linking" du skill, entrer
Code : Tout sélectionner
- Authorization URI: https://www.amazon.com/ap/oa?redirect_url=https://pitangui.amazon.com/api/skill/link/xxxxxxxx
remplacer le xxxxx par ce qui est affiché en bas de la page dans "Redirect URLs" https://pitangui.amazon.com/...
- Access Token URI: https://api.amazon.com/auth/o2/token
- Client ID/ Client secret: recopier id/secret du security profile créé
- Client Authentication Scheme: HTTP Basic
- Scope: En ajouter un, je l'ai nommé "profile"
Attention, revenir a "Security profile" créé précédemment, modifier dans l'onglet "Web settings" la partie "Allowed return URL" et y ajouter les 3 URLS en bas de la page "Account linking"
style
https://pitangui.amazon.com/api/skill/link/xxxxxxx,
https://layla.amazon.com/api/skill/link/xxxxxx,
https://alexa.amazon.co.jp/api/skill/link/xxxxxxx
Enregistrer tout ça, ça devrait etre ok.
Rem: En fait l'account linking permet de se lier avec un login sur une autre plateforme, normalement celle du fournisseur du skill, ce qui permet de savoir qui l'appelle (skill partagés par tous), la comme on en a pas besoin, on utilise un service amazon pour s'authentifier, le "security profile". Après dans les détails, ne me demandez pas, certaines parties restent un peu obscures pour moi.
Le skill créé apparait dans la conf. Alexa partie "Skills -> Mes skills" (en haut a droite) -> "Developpement". Dans notre cas, l'account linking va demander de s'authentifier, ici une nouvelle fois a Amazon (avec son login/pwd habituel de son compte Amazon, classique celui-là, avec lequel on a acheté l'Alexa ...)
Il est possible d'utiliser un outil de "test" dans la partie developer console (en haut a droite quand on est dans un "skill", il y a un bouton "Tester"). Pas top et attention on teste les phrases qu'on dirait a Alexa, tout skills confondus (il faut etre chez soi entre autre pour tester ...). Pour la partie Lambda, on peut voir les appels et éventuellement des "logs": onglet "monitoring", ca permet de vérifier a minima les appels.
En espérant Jeff que cela soit suffisant dans un premier temps.