Taula de continguts:

Alexa Skill: llegiu el darrer tuit (en aquest cas, Déu): 6 passos
Alexa Skill: llegiu el darrer tuit (en aquest cas, Déu): 6 passos

Vídeo: Alexa Skill: llegiu el darrer tuit (en aquest cas, Déu): 6 passos

Vídeo: Alexa Skill: llegiu el darrer tuit (en aquest cas, Déu): 6 passos
Vídeo: Памела Мейер: Как распознать лжеца 2024, Desembre
Anonim
Alexa Skill: llegeix el darrer tuit (en aquest cas, Déu)
Alexa Skill: llegeix el darrer tuit (en aquest cas, Déu)

Vaig fer un Alexa Skill per llegir "L'últim tuit de Déu": el contingut, és a dir, de @TweetOfGod, el compte de subscriptors de més de 5 milions creat per un antic escriptor de comèdies del Daily Show. Utilitza IFTTT (If This Then That), un full de càlcul de Google i l’increïblement fàcil d’utilitzar Alexa Skill Builder, Storyline.

Per fer-vos una idea del resultat final, podeu afegir l’habilitat al vostre dispositiu Alexa aquí o podeu previsualitzar l’habilitat a Storyline si el vostre compte d’Alexa no es troba als Estats Units o si no teniu cap dispositiu Alexa.

Si voleu crear una habilitat d'Alexa que llegeixi els tweets, aquesta és una manera relativament senzilla de fer-ho. No hi ha cap codificació implicada si només utilitzeu les meves plantilles, però si voleu sortir del camí us ajuda a conèixer una mica el codi en general i, en particular, com s’estructuren les trucades JSON. Però si només repliqueu aquesta habilitat per a un compte de Twitter diferent, no necessitarà habilitats tècniques més enllà de tallar i enganxar.

Què necessiteu:

  • Un dispositiu Alexa (o un compte amb Echoism.io, un gran simulador virtual d'Alexa)
  • Un compte de desenvolupador Alexa
  • Un compte de Google amb el qual crear un full de càlcul
  • Un compte amb Storyline
  • Un compte amb If This Then That (IFTTT)
  • Un compte de Dropbox o un lloc on podeu allotjar fitxers mp3 en un servidor segur

Tots aquests comptes són gratuïts.

No aprofundiré en els detalls bàsics sobre com crear una habilitat Storyline: hi ha excel·lents tutorials al lloc per aprendre a crear blocs, connectar-los i dividir-se entre condicions. Aquest tutorial se centrarà en tres coses que he après a construir aquesta habilitat: aconseguir un efecte de so MP3 a la vostra habilitat, connectar contingut de Twitter mitjançant IFTTT i Fulls de càlcul de Google i com generar un tuit aleatori a partir d’un conjunt d’opcions precreades.

(I un gran crit a l’Alexa Developer, George Collier, el excel·lent tutorial sobre com integrar Twitter a Alexa em va fer començar).

Pas 1: Pas 1: Penseu en el flux general de la vostra habilitat

Pas 1: Penseu en el flux general de la vostra habilitat
Pas 1: Penseu en el flux general de la vostra habilitat

Storyline és una manera fantàstica de crear habilitats Alexa amb poca o cap codificació. Podeu arrossegar i deixar anar blocs al lloc i configurar connexions i vies entre accions mitjançant una interfície gràfica fàcil d'entendre. Si alguna vegada heu utilitzat Yahoo Pipes, reconeixerà la interfície.

Ara, una de les coses interessants de Storyline és que fa que sigui bastant fàcil aconseguir que Alexa pronunciï els resultats de qualsevol consulta JSON. Obtenir dades d’un full de càlcul de Google és fàcil amb les consultes JSON. Obtenir tweets en un full de càlcul de Google amb If This Than That és fàcil. Fàcil. Fàcil. Fàcil.

Trobo que és millor visualitzar tota la vostra habilitat en resum abans de començar.

Quan vaig pensar en la meva habilitat, sabia que el seu propòsit principal era només enviar el darrer tuit. Però podria millorar-ho amb una mica de disseny de so (Storyline permet que la vostra habilitat reprodueixi qualsevol MP3) i és possible que un tuit no sigui suficient per donar a la gent un sabor del compte: podria emmagatzemar alguns dels tuits més antics i deixar l'usuari n'escolta un d'aquests després de l'últim. Per tant, el meu esbós de flux d’habilitats podria tenir aquest aspecte:

  1. Donar la benvinguda a l’usuari amb una mica de text parlat i un so introductori adequat
  2. Llegiu el darrer tuit
  3. Reprodueix un so de signatura
  4. Pregunteu a l'usuari si li agradaria escoltar un tuit més antic

    1. Sí? Llegiu un tuit més antic.
    2. Reprodueix el so de la signatura
    3. No? Sortiu de l'habilitat.

La font del "darrer tuit" és un full de càlcul de Google, alimentat per un script If This Then That. Aquest procés sembla així:

  1. SI hi ha un nou tuit del compte @TweetOfGod, es copia al full de càlcul
  2. Si el tuit conté un enllaç o una imatge, el full de càlcul el filtra
  3. Si el tuit és un retuit, el full de càlcul el filtra
  4. Els tuits obtinguts per aquests dos filtres es processen per llegir: # es substitueix per la paraula "Hashtag" i es substitueixen diversos altres caràcters per equivalents llegibles
  5. El tuit final es copia a la cel·la "últim tuit" que llegeix l'Alex

Pas 2: Pas 2: creeu un bonic bloc de benvinguda amb so introductori

Pas 2: creeu un bon bloc de benvinguda amb so introductori
Pas 2: creeu un bon bloc de benvinguda amb so introductori
Pas 2: creeu un bon bloc de benvinguda amb so introductori
Pas 2: creeu un bon bloc de benvinguda amb so introductori
Pas 2: creeu un bon bloc de benvinguda amb so introductori
Pas 2: creeu un bon bloc de benvinguda amb so introductori

Abans que Alexa no llegeixi l’últim tuit, genero a l’atzar un dels quatre sons celestials divertits. Es tracta de fitxers MP3 que han estat processats per Alexa per la història. Vaig trobar els meus MP3 a Freesound (I tot allà és realment gratuït, però sigueu un ésser humà decent i deixeu una propina).

  1. Descarregueu el vostre MP3. Ha de ser inferior a 90 segons. Alexa és particular sobre el format. Si sabeu que és MPEG versió 2 i 48kps, podeu ometre el pas següent. Però si no ho sabeu o és diferent, és fàcil de convertir.
  2. Pengeu-lo a Storyline per processar-lo al convertidor d'àudio
  3. Allotgeu l'àudio descarregat en un servidor

Si el pas 3 voleu "FER QUÈ ARA?" probablement no tingueu accés a un servidor https on podeu allotjar els vostres fitxers. No us preocupeu, ho podeu fer amb Dropbox. Necessitareu un compte, però de nou, un de gratuït està bé. Aquests són els passos següents:

  1. Aneu a https://www.dropbox.com/h i inicieu la sessió al vostre compte.
  2. Feu clic al botó Penja fitxers
  3. Seleccioneu el fitxer mp3 que heu convertit.
  4. Feu clic a Comparteix
  5. Feu clic a Crea un enllaç i Copieu l'enllaç
  6. A l'enllaç que heu copiat, substituïu "dropbox" per "dl.dropboxusercontent" sense les cometes
  7. Copieu aquest URL

Ara anireu a la part inferior del bloc de benvinguda i feu clic a la icona de nota musical.

Enganxeu el vostre URL. Si voleu afegir variacions aleatòries, repetiu el procés per obtenir més MP3 i feu clic al menú Hamburger que hi ha a sota del quadre d'enganxar de l'URL.

Pas 3: Pas 3: configureu IFTTT

Pas 3: configureu IFTTT
Pas 3: configureu IFTTT
  1. Aneu al vostre compte IFTTT i seleccioneu "Crea una miniaplicació nova"
  2. Seleccioneu TWITTER com a servei IF.
  3. Seleccioneu "Tuit nou per usuari concret com a activador. Empleneu el nom del compte que vulgueu seguir
  4. Seleccioneu "Fulls de càlcul de Google" com a servei THEN
  5. Seleccioneu "Afegeix fila al full de càlcul"
  6. Al camp "Fila formatada", suprimiu-ho tot excepte el camp {{TEXT}}.
  7. Crea la teva habilitat.

Això crea un nou full de càlcul i afegeix una fila cada vegada que surt un nou tuit. És possible que preferiu utilitzar una sola cel·la al full de càlcul i simplement sobreescriure el contingut cada vegada. En aquest cas, al pas 5 podeu triar l’opció d’escriure en una sola cel·la. M'agrada tenir un registre dels tuits, ja que periòdicament els que no tòpics o que reaccionen a les notícies passen a un full de càlcul "Tweets més antics". Tingueu en compte que, si trieu aquesta opció, haureu de fer un manteniment al full: es crearà una de nova després de 2000 files.

Pas 4: pas 4: configureu el full de Google

Pas 4: configureu el full de Google
Pas 4: configureu el full de Google
Pas 4: configureu el full de Google
Pas 4: configureu el full de Google
Pas 4: configureu el full de Google
Pas 4: configureu el full de Google

Aquest full de Google és el cor d’aquesta habilitat, ja que filtra els tweets que no funcionen molt bé amb Alexa (tweets que fan referència a imatges, per exemple, o tweets amb enllaços) i fa que els tweets només de text siguin molt més Alexa -amistós amb algunes substitucions senzilles.

Deixeu que IFTT creï el vostre full de càlcul amb algunes entrades; així que només cal que espereu uns quants tweets del compte per aterrar-hi, obriu Fulls de càlcul de Google i ordeneu per temps creat. Veureu el vostre brillant nou full de càlcul a la part superior. Ara, tots els tuits nous estaran en una fila nova, de manera que volem crear una fórmula que filtrarà els tuits que tinguin enllaços o imatges i que s’executin per trobar l’últim a la columna.

Només podeu reproduir aquesta còpia del meu full de càlcul o bé crear-ne la vostra amb els passos següents:

  1. Canvieu el nom de la pestanya amb tuits "En directe des d'IFTTT"
  2. Afegiu una pestanya anomenada "Processant tuits" al full de càlcul
  3. Afegiu aquesta fórmula a la cel·la A8 de la pestanya Processant tuits:

= QUERY ("En directe des de IFTTT"! A3: A2000, "Seleccioneu A On no conté" https "")

Això fa que tots els tuits que no tinguin cap enllaç a la columna A de la pestanya de processament.

Ara hem de trobar l’últim tuit d’aquesta columna. Enganxeu la fórmula següent a la cel·la B7 de la pestanya de processament:

= INDEX (FILTER (A: A, NOT (ISBLANK (A: A)))), FILES (FILTER (A: A, NOT (ISBLANK (A: A))))))

Ara volem fer algunes substitucions per facilitar la lectura del tweet a Alexa. Aquests poden ser tots en una fórmula d'una sola cel·la, però els vaig trencar per claredat:

A la cel·la B6, enganxeu la pestanya Processament:

= retalla (reexxreplace (B7, "#", "Hashtag"))

Això mira el contingut de la cel·la següent i substitueix el signe # per la paraula "Hashtag"

A la cel·la B5 enganxeu la següent iteració:

= retalla (reemplaçament (B6, "@", "a"))

Tens la idea.

Enganxa a la cel·la B4:

= retalla (reemplaçament (B6, "&", "i"))

A la cel·la B3:

= retalla (reemplaçament (B6, "%", "percentatge"))

A la cel·la B2 posarem una fórmula una mica més complicada:

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

Aquest simplement es desfà de TOT el que no sigui un número, una lletra o un dels punts de puntuació que Alexa entengui.

A la cel·la B1 simplement copiarem el tuit final:

= índex (B2)

Aquest és el text final i podeu programar la història per agafar aquesta cel·la si coneixeu una mica de JSON, però per fer les coses una mica més senzilles al final de la història, m'agrada copiar el contingut a la pestanya "Viu des d'IFTTT" posant aquesta fórmula en A2 a la pestanya "En directe des d'IFTTT":

= "Centre de processament"! B1

Groovy. Ara el full de càlcul està configurat i llest per ser llegit per una consulta Storyline JSON.

Pas 5: pas 5: configureu la consulta JSON "Últim tuit" a Storyline

Pas 5: configureu el vostre
Pas 5: configureu el vostre
Pas 5: configureu el vostre
Pas 5: configureu el vostre
Pas 5: configureu el vostre
Pas 5: configureu el vostre
  1. Aneu al bloc de benvinguda de la vostra història i afegiu un pas "El que diu Alexa".
  2. Afegiu una frase introductòria com ara "Aquí teniu l'últim tuit de TheTweetOfGod:"
  3. Utilitzeu el menú Hamburger per afegir variacions
  4. Feu clic a la fletxa cap a la dreta i seleccioneu "Crea un bloc nou"

He anomenat el meu nou bloc "Get God Tweet". La tasca aquí és anar a buscar el darrer tuit filtrat de la cel·la A2 del full de càlcul de la pestanya principal. Per fer-ho, obteniu les dades amb una sol·licitud JSON enviada mitjançant l'API de Fulls de càlcul de Google: realment no és més que un URL de luxe.

  1. Feu clic a la icona petita de la dreta del bloc nou per afegir una sol·licitud JSON.
  2. Anomeneu la vostra sol·licitud d'API. He anomenat el meu "GetGodTweet"
  3. Cerqueu l'URL del full de càlcul fent això:

    1. Feu clic a Fitxer -> Publica al web al full de càlcul.
    2. Utilitzeu els valors predeterminats i feu clic a "Publica"
    3. Copieu l'URL i enganxeu-lo en un fitxer de notes.

El meu exemple és:

"https://docs.google.com/spreadsheets/d/e/2PACX-1vSUnz43PEORZbBES1lQ8ZlJjH_4voh4Guc6SWrfjeGk2bZlY5EBYzLD5-fT633ygo_35Jz97cuUwKuy/pubhtml" És el bit entre el / d / e i el següent / charcter. Per tant, en aquest cas:

2PACX-1vSUnz43PEORZbBES1lQ8ZlJjH_4voh4Guc6SWrfjeGk2bZlY5EBYzLD5-fT633ygo_35Jz97cuUwKuy

Canvieu aquest nombre llarg pel bit a l'URL següent que diu "SPREASHEET_ID":

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

  1. Ara agafeu aquest URL i enganxeu-lo al quadre URL de la consulta JSON a Storyline.
  2. Seleccioneu l'opció "OBTENIR"
  3. Deixeu el quadre "Capçaleres" en blanc
  4. Al següent quadre, crearà una variable amb el contingut de la cel·la A2 de la primera pestanya enganxant aquesta fórmula a:

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

La variable es diu "piulada". Es tracta de copiar el contingut de la pestanya principal 0.

Ara, si afegiu un bloc "Alexa diu" a sota de la vostra consulta JSON i només poseu la paraula {{tweet}} entre claudàtors, Alexa dirà el contingut de la cel·la. Assegureu-vos que el cas coincideixi amb la variable que heu anomenat al pas 4.

Premeu el botó PLAY a Storyline i proveu la vostra habilitat. Si obteniu la paraula "Nul" vol dir que alguna cosa ha fallat amb la vostra sol·licitud d'API.

Això és realment per l'habilitat bàsica. Vaig afegir una petita signatura d'àudio divertida amb un altre MP3 i vaig preguntar si l'usuari vol escoltar un tuit més antic. El següent pas us mostrarà un bon truc per generar un tweet més antic a l'atzar, però és un gel per a aquells que vulguin aportar a la seva habilitat una usabilitat addicional.

Pas 6: Extra opcional: generar un resultat aleatori a partir de Fulls de càlcul de Google perquè Alexa pugui llegir-lo

Extra opcional: generar un resultat aleatori a partir de Fulls de càlcul de Google perquè Alexa pugui llegir-lo
Extra opcional: generar un resultat aleatori a partir de Fulls de càlcul de Google perquè Alexa pugui llegir-lo

Si voleu generar a l’atzar un dels tweets més antics, aquí teniu un truc enginyós.

Vaig crear una tercera pestanya al full de càlcul anomenada "Tweets més antics". Totes elles ocupen les cel·les A1-A36 del meu full de càlcul

  1. A Storyline, creeu un bloc nou anomenat "Oldertweets"
  2. Afegiu un pas de consulta JSON
  3. Posa-li un nom
  4. Al quadre URL, utilitzeu el mateix URL de l'API que heu creat amb el vostre identificador de full de càlcul al pas Tweet més recent, amb una variant:

    Canvieu el bit cap al final que diu / od6 / basic / public a / 3 / basic / public: es diu TAB 3 en lloc de Tab 1

  5. Selecciona "OBTÉ"
  6. Deixa les capçaleres en blanc
  7. Al quadre següent, enganxeu-ho:

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

Heu creat una variable nova, anomenada "oldtweet" i aquesta petita paraula "random" significa que la variable canviarà cada vegada que es cridi la consulta JSON.

Afegiu un altre pas "Alexa Says" i inseriu la vostra nova variable, {{oldtweet}} amb aquests claudàtors. Boom! Déu aleatòria!

Si us ha agradat aquest instructiu, doneu a la meva habilitat unes estrelles o una ressenya.

Recomanat: