
Internet regorge de bon tutoriaux pour faire des skills pour Alexa, le soucis, c'est que la plupart ne sont pas à jour. Amazon modifiant régulièrement ses interfaces, mode de publications et même site web. J'écris cet article en Juillet 2018, aussi. Il est probable qu'il ne soit plus vraiment d'actualité le jour ou vous même le lirez.
Bienvenue sur ce tutoriel pour créer votre première "skill" pour Alexa, l'IA de l'enceinte Amazon Echo. Pour commencer, sachez qu'il n'est pas nécessaire du tout de posséder l'objet connecté pour développer dessus. Enfin il n'est pas non plus obligatoire de savoir coder pour CE tutoriel. Tout étant... assez guidé.

Je vous invite donc à vous rendre sur le site dédié aux développeurs Amazon : https://developer.amazon.com/fr/alexa pour vous connecter, il suffit de rentrer votre compte amazon (celui de vos achats oui..., première incohérence dans leur menu puisque Amazon AWS demande un compte non marchand).
Une fois connecté, dans le menu console, vous n'aurez qu'à sélectionner "Skills". Et vous tomberez sur la page ci-dessus. Mon écran montre déjà une skill en cours de publication et en attente du retour des testeurs d'Amazon.
Cliquez sur "Create Skill" pour commencer votre chef-d'oeuvre.

Vous arrivez sur l'écran suivant. Le nombre de modèles diffère selon le pays et le type d'appareil actuellement en vente chez eux. Le tutoriel étant écrit en Français, je vous invite à donc choisir ce langage. J'appelle ici ma skill "apprendre addition". Il faut savoir que Alexa comprend mieux les skills avec des noms composés.
Pour ce tutoriel, choisissez le modèle "Custom" et créez la skill.

L'écran suivant est découpé en plusieurs parties. Un menu à gauche pour gérer toute la configuration, un menu en haut pour tester et publier la skill et à droite une checklist pour connaître toute les étapes.

En première étape, le nom d'invocation de la skill. De préférence le nom choisit lors de sa création. Pas de panique si le nom diffère, la skill aura le nom public affiché dans le premier menu une fois la skill publié.

Afin de gagner du temps, et pour se familiariser avec la configuration d'une skill plus qu'avec son code, nous allons choisir un exemple existant et développé par Amazon pour Alexa. Il s'agit du "space fact", le lien suivant conduit au projet github.
Dans le dossier /models, vous trouverez un fichier en-US.json. Copiez son contenu et placez-le à la place de l'autre.
Comme je l'ai dit plus haut, celui-ci contient la configuration globale de votre skill. Donc pensez à changer le nom inscrit dans le fichier par le votre. Sauvegardez le projet.

Une fois ceci fait, le menu à gauche va changer en ajoutant des sous-sections à votre programme. L'une d'entre elle, GetNewFactIntent représente le fichier d'utterance. Pour faire simple, il s'agit d'un point d'entrée vocal de votre application.

Une autre sous-section est apparue : Amazon.FallbackIntent. Cependant la version française d'Alexa ne gère pas encore ceci. Je vous invite donc à supprimer cette partie.

Dans la dernière section se trouve la logique de notre application. Il s'agit en fait d'un point de sortie, permettant à Alexa d'envoyer des commandes et de les recevoir. Il est tout à fait possible de créer son propre serveur et de renvoyer des données au format Amazon Echo. Mais pour le moment, nous allons nous contenter des outils fournis par l'entreprise. Il faut donc se rendre sur Amazon Web Service (AWS), l'outil cloud du vendeur américain.

En vous connectant sur le site web, il faudra rentrer un nouveau compte Amazon que celui utilisé pour la publication des skills Alexa. Enfin une fois sur cet écran, cherchez des fonctions "lamba". Il s'agit en fait de programme dit "sans serveur" et dont la facturation varie au nombre d'exécution. Rassurez vous, si vous vous devez un jour payer quelque chose. C'est que vous gagnez alors beaucoup.

Tout les lieux de serveur ne permettent pas de créer une fonction. L'état de Virginie du Nord aux États-Unis d'Amérique reste un choix simple pour ne pas se tromper. À partir d'ici, créez la fonction.

Cet endroit présente les manières de débuter son programme. Pour ce tutoriel, et jusqu'à être suffisamment expérimenté. Je conseil de choisir "plan". Puis de taper dans la recherche "Alexa"pour sélectionner fact-skill qui représente le contenu donné par Amazon dans son github.

Il faudra maintenant configurer un plan. En donnant un nom si possible en rapport avec celui donné dans le site web Alexa developer. Ainsi qu'un rôle, qui représente l'autorisation du skill pour fonctionner. Une fois fait créez la fonction.

On tombe alors sur cet écran. Pas la peine d'aller plus loin. Notre but est de relier cette fonction à notre skill. Premièrement, il faut ajouter un déclencheur/trigger. Choisissez "Alexa Skill Kit" (ASK). Ensuite, rendez-vous donc sur l'onglet précédent pour afficher les endpoints.

Il faut alors copier le skill ID et le coller dans la configuration du kit.

Ensuite en haut à droite copier l'ID ARN.

Et collez son résultat dans "Default Region" du site developer.

Sauvegardez puis puis compilez le projet. Dans le menu du haut, sélectionnez "Tests".

Cela va nous permettre de savoir si tout est bien câblé. Si en mettant le nom d'invocation de votre skill, vous avez ce résultat. Alors tout fonctionne.

Nous pouvons alors retourner dans la fonction sur AWS. En cliquant cette fois si sur le nom de la fonction et en scrollant plus bas, nous tombons sur le code de cette fonction.

Cette fonction peut-être personnalisée en changeant les "TODO". Modifiez alors le nom de la skill, les messages d'aide, d'arrêt du skill. La partie data va alors correspondre au retour de la fonction. Une fois tout cela fait, vous pouvez alors retester la skill.

Et voilà, vous avez créé votre première skill. À vous de jouer pour la suite. Vous pouvez alors vous former au javascript et au nodejs pour développer des fonctionnalités inédites afin de contenter vos futurs utilisateurs !
Sachez d'ailleurs que durant le mois de Juillet 2018, Amazon offre un Echo Dot pour toute skill publiée. Et si cette skill se trouve dans certaines catégories et qu'elle obtienne plus de 200 téléchargements, alors vous recevrez également une Amazon Echo (la grande).
Les détails se trouvent ici : https://developer.amazon.com/fr/alexa-skills-kit/alexa-developer-skills-promotion