Table des matières:

Alexa Skill : Lisez le dernier tweet (dans ce cas, celui de Dieu) : 6 étapes
Alexa Skill : Lisez le dernier tweet (dans ce cas, celui de Dieu) : 6 étapes

Vidéo: Alexa Skill : Lisez le dernier tweet (dans ce cas, celui de Dieu) : 6 étapes

Vidéo: Alexa Skill : Lisez le dernier tweet (dans ce cas, celui de Dieu) : 6 étapes
Vidéo: La définition du karma 2024, Novembre
Anonim
Compétence Alexa: Lisez le dernier tweet (dans ce cas, celui de Dieu)
Compétence Alexa: Lisez le dernier tweet (dans ce cas, celui de Dieu)

J'ai créé une compétence Alexa pour lire "Le dernier tweet de Dieu" - le contenu, c'est-à-dire de @TweetOfGod, le compte d'abonnés de plus de 5 millions créé par un ancien scénariste de comédie du Daily Show. Il utilise IFTTT (If This Then That), une feuille de calcul Google et le générateur de compétences Alexa incroyablement facile à utiliser, Storyline.

Pour avoir une idée du résultat final, vous pouvez ajouter la compétence à votre appareil Alexa ici, ou vous pouvez prévisualiser la compétence sur Storyline si votre compte Alexa n'est pas aux États-Unis ou si vous n'avez pas d'appareil Alexa.

Si vous souhaitez créer une compétence Alexa qui lit les tweets, c'est un moyen relativement simple de le faire. Il n'y a pas de codage impliqué si vous utilisez simplement mes modèles, mais si vous voulez vous éloigner du chemin, il est utile d'en savoir un peu plus sur le code en général et en particulier sur la façon dont les appels JSON sont structurés. Mais si vous ne faites que reproduire cette compétence pour un autre compte Twitter, cela ne nécessitera pas de compétences techniques au-delà du copier-coller.

Ce dont vous aurez besoin:

  • Un appareil Alexa (ou un compte avec Echoism.io - un excellent simulateur virtuel Alexa)
  • Un compte développeur Alexa
  • Un compte google pour créer une feuille de calcul avec
  • Un compte avec Storyline
  • Un compte avec If This Then That (IFTTT)
  • Un compte dropbox ou un endroit où vous pouvez héberger des fichiers mp3 sur un serveur sécurisé

Tous ces comptes sont gratuits.

Je n'entrerai pas dans les détails sur les bases de la création d'une compétence Storyline - il existe d'excellents didacticiels sur le site pour apprendre à créer des blocs, les connecter et se brancher entre les conditions. Ce didacticiel se concentrera sur trois choses que j'ai apprises en développant cette compétence: obtenir un effet sonore MP3 dans votre compétence, connecter du contenu Twitter via IFTTT et Google Sheets et comment générer un tweet aléatoire à partir d'un ensemble d'options pré-créées.

(Et un grand bravo au développeur de compétences Alexa, George Collier, dont l'excellent tutoriel sur l'intégration de Twitter dans Alexa m'a permis de démarrer.)

Étape 1: Étape 1: Réfléchissez au flux global de vos compétences

Étape 1: pensez au flux global de vos compétences
Étape 1: pensez au flux global de vos compétences

Storyline est un moyen fantastique de créer des compétences Alexa avec peu ou pas de codage. Vous pouvez faire glisser et déposer des blocs en place et configurer des connexions et des chemins entre les actions via une interface graphique facile à comprendre. Si vous avez déjà utilisé Yahoo Pipes, vous reconnaîtrez l'interface.

Maintenant, l'un des avantages de Storyline est qu'il est assez facile d'amener Alexa à prononcer les résultats de n'importe quelle requête JSON. Il est facile d'extraire des données d'une feuille de calcul Google avec les requêtes JSON. Obtenir des tweets DANS une feuille de calcul Google avec If This Than That est facile. Facile. Facile. Facile.

Je trouve qu'il est préférable de visualiser l'ensemble de vos compétences dans l'abstrait avant de commencer.

Quand j'ai pensé à mes compétences, je savais que son objectif principal était simplement de diffuser le dernier tweet. Mais je pourrais améliorer cela avec un peu de conception sonore (Storyline permet à vos compétences de lire n'importe quel MP3), et un tweet pourrait ne pas suffire pour donner aux gens une idée du compte - je pourrais stocker certains des tweets plus anciens et laisser l'utilisateur entend l'un de ceux-ci après la dernière. Donc, mon croquis de flux de compétences pourrait ressembler à ceci:

  1. Accueillez l'utilisateur avec un peu de texte parlé et un son d'introduction approprié
  2. Lire le dernier tweet
  3. Jouer un son signature
  4. Demandez à l'utilisateur s'il aimerait entendre un tweet plus ancien

    1. Oui? Lire un tweet plus ancien.
    2. Jouez le son signature
    3. Non? Quittez la compétence.

La source du "Dernier Tweet" est une feuille de calcul Google, alimentée par un script If This Then That. Ce processus ressemble à ceci:

  1. S'il y a un nouveau tweet du compte @TweetOfGod, il est copié dans la feuille de calcul
  2. Si le tweet contient un lien ou une image, la feuille de calcul le filtre
  3. Si le tweet est un retweet, la feuille de calcul le filtre
  4. Les tweets qui passent par ces deux filtres sont ensuite traités pour la lecture: # est remplacé par le mot "Hashtag" et plusieurs autres caractères sont remplacés par des équivalents lisibles
  5. Le tweet final est copié dans la cellule "dernier tweet" qu'Alex lit

Étape 2: Étape 2: Créez un joli bloc de bienvenue avec un son d'introduction

Étape 2: Créez un joli bloc de bienvenue avec un son d'introduction
Étape 2: Créez un joli bloc de bienvenue avec un son d'introduction
Étape 2: Créez un joli bloc de bienvenue avec un son d'introduction
Étape 2: Créez un joli bloc de bienvenue avec un son d'introduction
Étape 2: Créez un joli bloc de bienvenue avec un son d'introduction
Étape 2: Créez un joli bloc de bienvenue avec un son d'introduction

Avant qu'Alexa ne lise le dernier tweet, je génère au hasard l'un des quatre sons célestes humoristiques. Ce sont des MP3 qui ont été traités pour Alexa par scénario. J'ai trouvé mes MP3 sur Freesound (Et tout y est vraiment gratuit, mais soyez un être humain décent et laissez un pourboire).

  1. Téléchargez votre MP3. Il doit être inférieur à 90 secondes. Alexa est particulière au sujet du format. Si vous savez qu'il s'agit de MPEG Version 2 et 48 kps, vous pouvez sauter l'étape suivante. Mais si vous ne savez pas ou si c'est différent, c'est facile à convertir.
  2. Téléchargez-le sur Storyline pour le traitement sur leur convertisseur audio
  3. Hébergez votre audio téléchargé sur un serveur

Si l'étape 3 vous demande « FAIRE QUOI MAINTENANT ? » vous n'avez probablement pas accès à un serveur https sur lequel vous pouvez héberger vos fichiers. Ne vous inquiétez pas, vous pouvez le faire avec dropbox. Vous aurez besoin d'un compte, mais encore une fois, un compte gratuit est très bien. Voici les étapes:

  1. Allez sur https://www.dropbox.com/h et connectez-vous à votre compte.
  2. Cliquez sur le bouton Télécharger des fichiers
  3. Sélectionnez le fichier mp3 que vous avez converti.
  4. Cliquez sur Partager
  5. Cliquez sur Créer un lien et Copiez le lien
  6. Dans le lien que vous avez copié, remplacez "dropbox" par "dl.dropboxusercontent" sans les guillemets
  7. Copiez cette URL

Vous allez maintenant aller en bas de votre bloc de bienvenue et cliquer sur l'icône Note de musique.

Collez votre URL. Si vous souhaitez ajouter des variations aléatoires, répétez le processus pour quelques MP3 supplémentaires et cliquez sur le menu Hamburger sous la zone de collage de l'URL.

Étape 3: Étape 3: Configurer IFTTT

Étape 3: Configurer IFTTT
Étape 3: Configurer IFTTT
  1. Accédez à votre compte IFTTT et sélectionnez "Créer une nouvelle applet"
  2. Sélectionnez TWITTER comme service IF.
  3. Sélectionnez "Nouveau tweet par utilisateur spécifique comme déclencheur. Remplissez le nom du compte que vous souhaitez suivre
  4. Sélectionnez "Google Sheets" comme service THEN
  5. Sélectionnez "Ajouter une ligne à la feuille de calcul"
  6. Dans le champ "Ligne formatée", supprimez tout sauf le champ {{TEXT}}.
  7. Créez votre compétence.

Cela crée une nouvelle feuille de calcul et ajoute une ligne à chaque fois qu'un nouveau tweet sort. Vous préférerez peut-être utiliser une seule cellule sur votre feuille de calcul et simplement écraser son contenu à chaque fois. Dans ce cas, à l'étape 5, vous pouvez choisir l'option d'écrire dans une seule cellule. J'aime garder une trace des tweets, car je déplace périodiquement ceux qui ne sont pas d'actualité ou qui ne réagissent pas aux nouvelles vers une feuille de calcul « Tweets plus anciens ». Sachez que si vous choisissez cette option, vous devrez faire un peu de maintenance sur votre feuille: une nouvelle sera créée au bout de 2000 lignes.

Étape 4: Étape 4: Configurez votre feuille Google

Étape 4: Configurez votre feuille Google
Étape 4: Configurez votre feuille Google
Étape 4: Configurez votre feuille Google
Étape 4: Configurez votre feuille Google
Étape 4: Configurez votre feuille Google
Étape 4: Configurez votre feuille Google

Cette feuille Google est au cœur de cette compétence particulière, car elle filtre les tweets qui ne fonctionnent pas très bien avec Alexa (tweets qui font référence à des images, par exemple, ou tweets avec des liens) et rend les tweets contenant uniquement du texte beaucoup plus Alexa -amical avec quelques remplacements simples.

Laissez IFTT créer votre feuille de calcul avec quelques entrées - alors attendez simplement que quelques tweets du compte que votre suivi y atterrisse, ouvrez Google Sheets et triez par heure de création. Vous verrez votre nouvelle feuille de calcul brillante juste en haut. Maintenant, chaque nouveau tweet sera dans une nouvelle ligne, nous voulons donc créer une formule qui filtrera les tweets contenant des liens ou des images et parcourra pour trouver le dernier dans la colonne.

Vous pouvez simplement reproduire cette copie de ma feuille de calcul ou créer la vôtre en procédant comme suit:

  1. Renommez l'onglet avec des tweets "En direct d'IFTTT"
  2. Ajoutez un onglet appelé « Traitement des tweets » à la feuille de calcul
  3. Ajoutez cette formule dans la cellule A8 de l'onglet Traitement des tweets:

=QUERY('Live from IFTTT'!A3:A2000, "Sélectionnez A Où pas A contient 'https'")

Cela attire tous les tweets qui n'ont pas de lien dans la colonne A de votre onglet de traitement.

Nous devons maintenant trouver le dernier tweet de cette colonne. Collez la formule suivante dans la cellule B7 de l'onglet de traitement:

=INDICE(FILTRE(A:A, NON(ESTVIDE(A:A))), LIGNES(FILTRE(A:A, NON(ESTVIDE(A:A))))))

Maintenant, nous voulons faire quelques remplacements pour rendre le tweet plus facile à lire pour Alexa. Celles-ci peuvent en fait toutes être une formule dans une seule cellule, mais je les ai séparées pour plus de clarté:

Dans la cellule B6 coller de l'onglet Traitement:

=trim(regexreplace(B7, "#", "Hashtag"))

Cela examine le contenu de la cellule ci-dessous et remplace le signe # par le mot "Hashtag"

Dans la cellule B5, collez l'itération suivante:

=trim(regexreplace(B6, "@", "at "))

Vous avez eu l'idée.

Dans la pâte Cell B4:

=trim(regexreplace(B6, "&", "et "))

Dans la cellule B3:

=trim(regexreplace(B6, "%", "pourcentage"))

Dans la cellule B2, nous allons placer une formule un peu plus compliquée:

=ArrayFormula(REGEXREPLACE(B3, "([^A-Za-z0-9., !?:;''])", " "))

Celui-ci se débarrasse simplement de TOUT ce qui n'est pas un chiffre, une lettre ou l'un des points de ponctuation qu'Alexa comprend.

Dans la cellule B1, nous allons simplement copier le tweet final:

=indice(B2)

C'est le texte final et vous pouvez programmer le scénario pour saisir cette cellule si vous connaissez un peu JSON, mais pour simplifier un peu les choses à la fin du scénario, j'aime copier le contenu dans l'onglet "Live from IFTTT" en mettant ceci formule en A2 dans l'onglet "En direct d'IFTTT":

='Centre de traitement'!B1

Sensationnel. Votre feuille de calcul est maintenant configurée et prête à être lue par une requête Storyline JSON.

Étape 5: Étape 5: Configurez votre requête JSON "Dernier Tweet" dans Storyline

Étape 5: Configurez votre
Étape 5: Configurez votre
Étape 5: Configurez votre
Étape 5: Configurez votre
Étape 5: Configurez votre
Étape 5: Configurez votre
  1. Accédez au bloc de bienvenue de votre compétence de scénario et ajoutez une étape « Ce que dit Alexa ».
  2. Ajoutez une phrase d'introduction comme « Voici le dernier tweet de TheTweetOfGod: »
  3. Utilisez le menu Hamburger pour ajouter des variantes
  4. Cliquez sur la petite flèche vers la droite et sélectionnez "Créer un nouveau bloc"

J'ai appelé mon nouveau bloc "Get God Tweet". La tâche ici est d'aller chercher ce dernier tweet filtré à partir de la cellule de feuille de calcul A2 de l'onglet principal. Pour ce faire, vous récupérez les données avec une requête JSON envoyée via l'API Google Sheets: ce n'est vraiment rien de plus qu'une URL sophistiquée.

  1. Cliquez sur la petite icône à l'extrême droite de votre nouveau bloc pour ajouter une requête JSON.
  2. Nommez votre requête API. J'ai appelé le mien "GetGodTweet"
  3. Trouvez l'URL de votre feuille de calcul en procédant comme suit:

    1. Cliquez sur Fichier -> Publier sur le Web dans votre feuille de calcul.
    2. Utilisez les valeurs par défaut et cliquez simplement sur "Publier"
    3. Copiez l'URL et collez-la dans un fichier de notes.

Mon exemple est:

"https://docs.google.com/spreadsheets/d/e/2PACX-1vSUnz43PEORZbBES1lQ8ZlJjH_4voh4Guc6SWrfjeGk2bZlY5EBYzLD5-fT633ygo_35Jz97cuUwKuy/pubhtml" vous devrez extraire de longues lignes d'identification de document à partir de cette chaîne. C'est le bit entre le /d/e et le prochain / caractère. Donc dans ce cas:

2PACX-1vSUnz43PEORZbBES1lQ8ZlJjH_4voh4Guc6SWrfjeGk2bZlY5EBYzLD5-fT633ygo_35Jz97cuUwKuy

Vous échangez ce long numéro pour le bit dans l'url suivante qui dit "SPREASHEET_ID":

"https://spreadsheets.google.com/feeds/list/SPREADSHEET_ID/od6/public/basic?alt=json"

  1. Maintenant, prenez CETTE URL et collez-la dans la zone URL de la requête JSON dans Storyline.
  2. Sélectionnez l'option « OBTENIR »
  3. Laissez la case "En-têtes" vide
  4. Dans la case suivante, vous allez créer une variable avec le contenu de la cellule A2 de votre premier onglet en collant cette formule dans:

tweet=api_response.feed.entry.0.title.$t

La variable est nommée "tweet". Il copie le contenu de l'onglet principal 0.

Maintenant, si vous ajoutez un bloc "Alexa Says" sous votre requête JSON et mettez juste le mot {{tweet}} entre accolades, Alexa dira le contenu de la cellule. Assurez-vous que la casse correspond à la variable que vous avez nommée à l'étape 4 !!!

Appuyez sur le bouton PLAY sur Storyline et testez vos compétences ! Si vous obtenez le mot "Null", cela signifie que quelque chose ne va pas avec votre demande d'API.

C'est vraiment tout pour la compétence de base. J'ai ajouté une petite signature audio amusante avec un autre MP3, et j'ai demandé si l'utilisateur voulait entendre un tweet plus ancien. L'étape suivante vous montre une astuce intéressante pour générer un tweet plus ancien au hasard, mais c'est glaçant pour ceux qui veulent apporter à leurs compétences une facilité d'utilisation supplémentaire.

Étape 6: Supplément facultatif: générer un résultat aléatoire à partir de Google Sheets pour Alexa à lire

Supplément facultatif: génération d'un résultat aléatoire à partir de Google Sheets pour Alexa à lire
Supplément facultatif: génération d'un résultat aléatoire à partir de Google Sheets pour Alexa à lire

Si vous souhaitez générer au hasard l'un d'un ensemble de tweets plus anciens, voici une astuce astucieuse.

J'ai créé un troisième onglet dans ma feuille de calcul intitulé « Anciens Tweets ». Ceux-ci occupent tous les cellules A1-A36 dans ma feuille de calcul

  1. Dans Storyline, créez un nouveau bloc appelé "Oldertweets"
  2. Ajouter une étape de requête JSON
  3. Donne lui un nom
  4. Dans la zone URL, utilisez la même URL d'API que vous avez créée avec votre ID de feuille de calcul à l'étape Dernier Tweet, avec une variante:

    Changez le bit vers la fin qui dit /od6/basic/public en /3/basic/public - cela appelle TAB 3 au lieu de Tab 1

  5. Sélectionnez « OBTENIR »
  6. Laissez les en-têtes vides
  7. Dans la case suivante, collez ceci:

oldtweet=api_response.feed.entry.random.title.$t

Vous avez créé une nouvelle variable, appelée "oldtweet" et ce petit mot "aléatoire" signifie que la variable changera à chaque fois que la requête JSON est appelée.

Ajoutez une autre étape "Alexa Says" et insérez votre nouvelle variable, {{oldtweet}} avec ces accolades. Boom! Bonté aléatoire !

Si vous avez apprécié ce Instructable, veuillez donner à mes compétences quelques étoiles ou une critique !

Conseillé: