Innholdsfortegnelse:

Alexa Skill: Les den siste tweeten (i denne saken, Guds): 6 trinn
Alexa Skill: Les den siste tweeten (i denne saken, Guds): 6 trinn

Video: Alexa Skill: Les den siste tweeten (i denne saken, Guds): 6 trinn

Video: Alexa Skill: Les den siste tweeten (i denne saken, Guds): 6 trinn
Video: «Интернет вещей», Джеймс Уиттакер из Microsoft 2024, Kan
Anonim
Alexa Skill: Les den siste tweeten (i denne saken, Guds)
Alexa Skill: Les den siste tweeten (i denne saken, Guds)

Jeg laget en Alexa Skill for å lese "God's Latest Tweet" - innholdet, det vil si fra @TweetOfGod, den 5 millioner+ abonnentkontoen som ble opprettet av en tidligere Daily Show -komedieforfatter. Den bruker IFTTT (If This Then That), et Google-regneark og den utrolig brukervennlige Alexa Skill Builder, Storyline.

For å få en ide om sluttresultatet, kan du legge til ferdigheten til Alexa -enheten din her, eller du kan forhåndsvise ferdigheten på Storyline hvis Alexa -kontoen din ikke er i USA eller du ikke har en Alexa -enhet.

Hvis du vil bygge en Alexa -ferdighet som leser tweets, er dette en relativt enkel måte å gjøre det på. Det er ingen koding involvert hvis du bare bruker malene mine, men hvis du vil vandre av banen, hjelper det å vite litt om kode generelt og spesielt hvordan JSON -anrop er strukturert. Men hvis du bare replikerer denne ferdigheten for en annen Twitter -konto, kommer det ikke til å kreve tekniske ferdigheter utover klippe og lime inn.

Dette trenger du:

  • En Alexa -enhet (eller en konto hos Echoism.io - en flott Alexa virtuell simulator)
  • En Alexa -utviklerkonto
  • En Google -konto for å lage et regneark med
  • En konto hos Storyline
  • En konto hos If This Then That (IFTTT)
  • En dropbox -konto eller et sted hvor du kan være vert for mp3 -filer på en sikker server

Alle disse kontoene er gratis.

Jeg vil ikke gå i detalj med det grunnleggende om hvordan du lager en Storyline -ferdighet - det er utmerkede opplæringsprogrammer på stedet for å lære å lage blokker, koble dem og grene mellom forhold. Denne opplæringen vil fokusere på tre ting jeg lærte å bygge denne ferdigheten: å få en MP3-lydeffekt i ferdighetene dine, koble twitterinnhold via IFTTT og Google Sheets, og hvordan du genererer en tilfeldig tweet fra et sett med forhåndsopprettede alternativer.

(Og et stort rop til Alexa Skill Developer George Collier, hvis utmerkede opplæring om å få twitter integrert i Alexa fikk meg i gang.)

Trinn 1: Trinn 1: Tenk på den generelle flyt av ferdigheten din

Trinn 1: Tenk på den generelle flyt av ferdigheten din
Trinn 1: Tenk på den generelle flyt av ferdigheten din

Storyline er en fantastisk måte å lage Alexa -ferdigheter med liten eller ingen koding. Du kan dra og slippe blokker på plass og sette opp tilkoblinger og veier mellom handlinger gjennom et lettfattelig grafisk grensesnitt. Hvis du noen gang har brukt Yahoo Pipes, kjenner du igjen grensesnittet.

Nå er en av de kule tingene med Storyline at det gjør det ganske enkelt å få Alexa til å snakke resultatene av alle JSON -forespørsler. Å få data ut av et Google -regneark er enkelt med JSON -forespørsler. Å få tweets til et Google -regneark med If This Than That er enkelt. Lett. Lett. Lett.

Jeg synes det er best å bare visualisere hele ferdigheten din abstrakt før du begynner.

Da jeg tenkte på ferdigheten min, visste jeg at det primære formålet var bare å levere den siste tweeten. Men jeg kan forbedre det med litt lyddesign (Storyline lar deg spille av MP3), og en tweet er kanskje ikke nok til å gi folk en smak av kontoen - jeg kan lagre noen av de eldre tweets og la brukeren hører en av dem etter det siste. Så min ferdighetsflytskisse kan se slik ut:

  1. Velkommen brukeren med litt snakket tekst og en passende introduksjonslyd
  2. Les siste tweet
  3. Spill en signaturlyd
  4. Spør brukeren om de vil høre en eldre tweet

    1. Ja? Les en eldre tweet.
    2. Spill signaturlyden
    3. Nei? Gå ut av ferdigheten.

Kilden til "Latest Tweet" er et Google -regneark, matet av et If This Then That -skript. Den prosessen ser slik ut:

  1. HVIS det er en ny tweet fra @TweetOfGod -kontoen, blir den kopiert til regnearket
  2. Hvis tweeten inneholder en lenke eller et bilde, filtrerer regnearket den ut
  3. Hvis tweeten er en retweet, filtrerer regnearket den ut
  4. Tweets som får de to filtrene blir deretter behandlet for lesing: # erstattes med ordet "hashtag" og flere andre tegn erstattes med lesbare ekvivalenter
  5. Den siste tweeten kopieres til den "siste tweet" -cellen som Alex leser

Trinn 2: Trinn 2: Lag en hyggelig velkomstblokk med introduksjonslyd

Trinn 2: Lag en hyggelig velkomstblokk med introduksjonslyd
Trinn 2: Lag en hyggelig velkomstblokk med introduksjonslyd
Trinn 2: Lag en hyggelig velkomstblokk med introduksjonslyd
Trinn 2: Lag en hyggelig velkomstblokk med introduksjonslyd
Trinn 2: Lag en hyggelig velkomstblokk med introduksjonslyd
Trinn 2: Lag en hyggelig velkomstblokk med introduksjonslyd

Før Alexa leser den siste tweeten, genererer jeg tilfeldig en av fire humoristiske himmelske lyder. Dette er MP3 -er som er behandlet for Alexa av storyline. Jeg fant MP3 -ene mine på Freesound (og alt der er virkelig gratis, men vær et anstendig menneske og legg igjen et tips).

  1. Last ned MP3. Det må være mindre enn 90 sekunder. Alexa er spesielt om format. Hvis du vet at det er MPEG versjon 2 og 48kps, kan du hoppe over neste trinn. Men hvis du ikke vet eller det er noe annerledes, er det enkelt å konvertere.
  2. Last den opp til Storyline for behandling på Audio Converter
  3. Vert den nedlastede lyden på en HTTPS -server

Hvis du går til trinn 3 "GJØR DU HVA NÅ?" du har sannsynligvis ikke tilgang til en https -server som du kan være vert for filene dine på. Ikke bekymre deg, du kan gjøre det med dropbox. Du trenger en konto, men igjen, en gratis er greit. Her er trinnene:

  1. Gå til https://www.dropbox.com/h og logg på kontoen din.
  2. Klikk på Last opp filer -knappen
  3. Velg mp3 -filen du konverterte.
  4. Klikk på Del
  5. Klikk på Opprett en kobling og Kopier lenken
  6. I lenken du kopierte, erstatt "dropbox" med "dl.dropboxusercontent" uten anførselstegn
  7. Kopier nettadressen

Du kommer nå til å gå til bunnen av velkomstblokken og klikke på notatikonet.

Lim inn nettadressen din. Hvis du vil legge til tilfeldige varianter, gjentar du prosessen for noen flere MP3 -filer og klikker på Hamburger -menyen under URL -limboksen.

Trinn 3: Trinn 3: Konfigurer IFTTT

Trinn 3: Konfigurer IFTTT
Trinn 3: Konfigurer IFTTT
  1. Gå til IFTTT -kontoen din og velg "Opprett en ny applet"
  2. Velg TWITTER som IF -tjenesten.
  3. Velg "Ny tweet av spesifikk bruker som utløser. Fyll ut navnet på kontoen du vil følge
  4. Velg "Google Regneark" som THEN -tjenesten
  5. Velg "Legg rad til regneark"
  6. I feltet "Formatert rad" fjerner du alt unntatt feltet {{TEXT}}.
  7. Lag din ferdighet.

Dette oppretter et nytt regneark og legger til en rad hver gang en ny tweet går ut. Du foretrekker kanskje å bruke en enkelt celle i regnearket og bare overskrive innholdet hver gang. I så fall kan du i trinn 5 velge alternativet å skrive til en enkelt celle. Jeg liker å holde oversikt over tweets, ettersom jeg periodisk flytter de som ikke er aktuelle eller reagerer på nyheter til et "Eldre tweets" -regneark. Vær oppmerksom på at hvis du velger dette alternativet, må du utføre litt vedlikehold på arket ditt: et nytt vil bli opprettet etter 2000 rader.

Trinn 4: Trinn 4: Konfigurer Google -arket ditt

Trinn 4: Konfigurer Google -arket
Trinn 4: Konfigurer Google -arket
Trinn 4: Konfigurer Google -arket
Trinn 4: Konfigurer Google -arket
Trinn 4: Konfigurer Google -arket
Trinn 4: Konfigurer Google -arket

Dette Google-arket er hjertet i denne ferdigheten, fordi den filtrerer bort tweets som ikke fungerer veldig bra med Alexa (tweets som for eksempel refererer til bilder eller tweets med lenker), og det gjør tweets med tekst bare mye mer Alexa -vennlig med noen få enkle erstatninger.

La IFTT lage regnearket ditt med noen få oppføringer - så det er bare å vente på noen tweets fra kontoen du sporer for å lande der, åpne Google Regneark og sorter etter tid som er opprettet. Du vil se det skinnende nye regnearket ditt øverst. Nå vil hver nye tweet være i en ny rad, så vi vil lage en formel som filtrerer bort tweets som har lenker eller bilder og går gjennom for å finne den siste i kolonnen.

Du kan bare kopiere denne kopien av regnearket mitt, eller du kan bygge din egen med følgende trinn:

  1. Gi nytt navn til fanen med tweets i den "Live from IFTTT"
  2. Legg til en fane som heter "Behandler tweets" i regnearket
  3. Legg til denne formelen i celle A8 i kategorien Processing Tweets:

= QUERY ('Live from IFTTT'! A3: A2000, "Velg A Hvor ikke A inneholder 'https'")

Det trekker alle tweets som ikke har en kobling til kolonne A i behandlingsfanen.

Nå må vi finne den siste tweeten i den kolonnen. Lim inn følgende formel i celle B7 i behandlingsfanen:

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

Nå vil vi gjøre noen få erstatninger for å gjøre tweeten lettere for Alexa å lese. Disse kan faktisk alle være en i en enkelt celleformel, men jeg delte dem opp for klarhet:

I Cell B6 -lim i kategorien Behandling:

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

Det ser på innholdet i cellen nedenfor og erstatter # -tegnet med ordet "hashtag"

Lim inn neste iterasjon i Cell B5:

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

Du skjønner ideen.

I Cell B4 lim inn:

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

I celle B3:

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

I celle B2 skal vi plassere en litt mer komplisert formel:

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

Denne blir ganske enkelt kvitt ALT som ikke er et tall, en bokstav eller et av skilletegnene som Alexa forstår.

I Cell B1 skal vi ganske enkelt kopiere den siste tweet:

= indeks (B2)

Det er den siste teksten, og du kan programmere historien til å gripe den cellen hvis du kjenner litt til JSON, men for å gjøre ting litt enklere på slutten av historien, liker jeg å kopiere innholdet til "Live from IFTTT" -fanen ved å sette dette formel i A2 i kategorien "Live from IFTTT":

= 'Behandlingssenter'! B1

Groovy. Nå er regnearket ditt klart og klart til å bli lest av en Storyline JSON -spørring.

Trinn 5: Trinn 5: Konfigurer din "siste Tweet" JSON -forespørsel i Storyline

Trinn 5: Sett opp din
Trinn 5: Sett opp din
Trinn 5: Konfigurer din
Trinn 5: Konfigurer din
Trinn 5: Konfigurer din
Trinn 5: Konfigurer din
  1. Gå til velkomstblokken til historien din, og legg til et trinn "Hva Alexa sier".
  2. Legg til et innledende uttrykk som "Her er den siste tweeten fra TheTweetOfGod:"
  3. Bruk Hamburger -menyen til å legge til variasjoner
  4. Klikk på den lille pilen til høyre og velg "Opprett ny blokk"

Jeg kalte den nye blokken min "Get God Tweet". Oppgaven her er å hente den siste, filtrerte tweeten fra regnearkcellen A2 i hovedfanen. Du gjør det ved å hente dataene med en JSON -forespørsel levert via Google Sheets API: Det er egentlig ikke annet enn en fancy URL.

  1. Klikk på det lille ikonet helt til høyre på den nye blokken for å legge til en JSON -forespørsel.
  2. Gi API -forespørselen din et navn. Jeg kalte mitt "GetGodTweet"
  3. Finn nettadressen til regnearket ditt ved å gjøre dette:

    1. Klikk på Fil -> Publiser på web i regnearket.
    2. Bruk standardverdiene og klikk "Publiser"
    3. Kopier nettadressen og lim den inn i en notatfil.

Mitt eksempel er:

"https://docs.google.com/spreadsheets/d/e/2PACX-1vSUnz43PEORZbBES1lQ8ZlJjH_4voh4Guc6SWrfjeGk2bZlY5EBYzLD5-fT633ygo_35Jz97cuUwKuy/pubhtml" du trenger det fra langdokumentet du trenger. Det er litt mellom /d /e og neste /charter. Så i dette tilfellet:

2PACX-1vSUnz43PEORZbBES1lQ8ZlJjH_4voh4Guc6SWrfjeGk2bZlY5EBYzLD5-fT633ygo_35Jz97cuUwKuy

Du bytter det lange tallet inn for biten i følgende url som sier "SPREASHEET_ID":

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

  1. Ta nå DEN URL -adressen, og lim den inn i URL -boksen til JSON -spørringen i Storyline.
  2. Velg alternativet "GET"
  3. La boksen "Overskrifter" stå tom
  4. I den neste boksen skal du opprette en variabel med innholdet i celle A2 i den første kategorien ved å lime inn denne formelen i:

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

Variabelen heter "tweet". Det kopierer innholdet fra hovedfanen 0.

Hvis du legger til en "Alexa Says" -blokk under JSON -spørringen din, og bare legger ordet {{tweet}} i krøllete parenteser, sier Alexa innholdet i cellen. Sørg for at saken samsvarer med variabelen du navngav i trinn 4 !!!

Trykk på PLAY -knappen på Storyline og test ferdighetene dine! Hvis du får ordet "Null" betyr det at noe har gått galt med API -forespørselen din.

Det er egentlig det for den grunnleggende ferdigheten. Jeg la til en morsom liten lydsignatur med en annen MP3, og spurte om brukeren vil høre en eldre tweet. Det neste trinnet viser deg et fint triks for å generere en tilfeldig eldre tweet, men det er frosting for de som ønsker å bringe sine ferdigheter litt ekstra brukervennlighet.

Trinn 6: Valgfritt ekstra: Generere et tilfeldig resultat fra Google Sheets for Alexa å lese

Valgfritt ekstra: Generere et tilfeldig resultat fra Google Sheets for Alexa å lese
Valgfritt ekstra: Generere et tilfeldig resultat fra Google Sheets for Alexa å lese

Hvis du vil tilfeldig generere en av et sett med eldre tweets, er det et lurt triks.

Jeg opprettet en tredje fane i regnearket mitt som heter "Eldre tweets." Disse opptar alle cellene A1-A36 i regnearket mitt

  1. I Storyline, opprett en ny blokk kalt "Oldertweets"
  2. Legg til et JSON -forespørselstrinn
  3. Gi den et navn
  4. I URL -boksen bruker du den samme API -URL -en du konstruerte med regneark -ID -en din i det siste tweet -trinnet, med én variant:

    Endre biten mot slutten som sier/od6/basic/public til/3/basic/public - dette kaller TAB 3 i stedet for Tab 1

  5. Velg "GET"
  6. La overskrifter stå tomme
  7. Lim inn denne boksen i neste boks:

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

Du har opprettet en ny variabel, kalt "oldtweet", og det lille ordet "tilfeldig" betyr at variabelen vil endres hver gang JSON -spørringen kalles.

Legg til et nytt "Alexa Says" -trinn og sett inn den nye variabelen din, {{oldtweet}} med de krøllete parentesene. Boom! Tilfeldig godhet!

Hvis du likte denne Instructable, vennligst gi min ferdighet noen få stjerner eller en anmeldelse!

Anbefalt: