Indholdsfortegnelse:

Alexa Skill: Læs den seneste tweet (i denne sag, Guds): 6 trin
Alexa Skill: Læs den seneste tweet (i denne sag, Guds): 6 trin

Video: Alexa Skill: Læs den seneste tweet (i denne sag, Guds): 6 trin

Video: Alexa Skill: Læs den seneste tweet (i denne sag, Guds): 6 trin
Video: Jeg arbejder på Privatmuseet for de rige og berømte. Skrækhistorier. Rædsel. 2024, Kan
Anonim
Alexa Skill: Læs den seneste tweet (i denne sag, Guds)
Alexa Skill: Læs den seneste tweet (i denne sag, Guds)

Jeg lavede en Alexa Skill for at læse "Guds seneste tweet" - indholdet, det vil sige fra @TweetOfGod, den 5 millioner+ abonnentkonto, der blev oprettet af en tidligere Daily Show -komedieforfatter. Den bruger IFTTT (If This Then That), et Google-regneark og den utroligt brugervenlige Alexa Skill Builder, Storyline.

For at få en idé om slutresultatet kan du tilføje færdigheden til din Alexa -enhed her, eller du kan få vist et eksempel på færdigheden på Storyline, hvis din Alexa -konto ikke er i USA, eller du ikke har en Alexa -enhed.

Hvis du vil opbygge en Alexa -færdighed, der læser tweets, er dette en relativt nem måde at gøre det på. Der er ingen kodning involveret, hvis du bare bruger mine skabeloner, men hvis du vil vandre væk fra stien, hjælper det at vide lidt om kode generelt og især hvordan JSON -opkald er opbygget. Men hvis du bare replikerer denne færdighed for en anden Twitter -konto, vil det ikke kræve tekniske færdigheder ud over at klippe og indsætte.

Det skal du bruge:

  • En Alexa -enhed (eller en konto hos Echoism.io - en fantastisk Alexa virtuel simulator)
  • En Alexa -udviklerkonto
  • En Google -konto til at oprette et regneark med
  • En konto med Storyline
  • En konto hos If This Then That (IFTTT)
  • En dropbox -konto eller et sted, hvor du kan hoste mp3 -filer på en sikker server

Alle disse konti er gratis.

Jeg vil ikke gå i detaljer med det grundlæggende i, hvordan man opretter en Storyline -færdighed - der er fremragende vejledninger på stedet for at lære at oprette blokke, forbinde dem og forgrene mellem betingelser. Denne vejledning vil fokusere på tre ting, jeg lærte at opbygge denne færdighed: at få en MP3-lydeffekt ind i dine færdigheder, forbinde twitterindhold via IFTTT og Google Sheets, og hvordan du genererer et tilfældigt tweet fra et sæt forudoprettede muligheder.

(Og et stort råb til Alexa Skill Developer George Collier, hvis fremragende vejledning i at få twitter integreret i Alexa fik mig i gang.)

Trin 1: Trin 1: Tænk over din færdigheds samlede flow

Trin 1: Tænk over din færdigheds samlede flow
Trin 1: Tænk over din færdigheds samlede flow

Storyline er en fantastisk måde at skabe Alexa -færdigheder med lidt eller ingen kodning. Du kan trække og slippe blokke på plads og oprette forbindelser og veje mellem handlinger gennem en letforståelig grafisk grænseflade. Hvis du nogensinde har brugt Yahoo Pipes, genkender du grænsefladen.

Nu er en af de fede ting ved Storyline, at det gør det ret let at få Alexa til at tale resultaterne af enhver JSON -forespørgsel. Det er let at få data ud af et Google -regneark med JSON -forespørgsler. Det er let at få tweets i et Google -regneark med If This Than That. Let. Let. Let.

Jeg synes, det er bedst at bare visualisere hele din evne i abstrakt, før du starter.

Da jeg tænkte på min dygtighed, vidste jeg, at det primære formål var bare at levere den seneste tweet. Men jeg kunne forstærke det med en lille smule lyddesign (Storyline giver dig mulighed for at afspille enhver MP3), og en tweet er muligvis ikke nok til at give folk en smag af kontoen - jeg kunne lagre nogle af de ældre tweets og lade brugeren hører en af dem efter den seneste. Så min skill flow sketch kan se sådan ud:

  1. Byd brugeren velkommen med lidt talt tekst og en passende introduktionslyd
  2. Læs den seneste tweet
  3. Afspil en signaturlyd
  4. Spørg brugeren, om de gerne vil høre et ældre tweet

    1. Ja? Læs en ældre tweet.
    2. Afspil signaturlyden
    3. Ingen? Afslut færdigheden.

Kilden til "Seneste tweet" er et Google -regneark, der er fodret med et If This Then That -script. Denne proces ser sådan ud:

  1. HVIS der er en ny tweet fra @TweetOfGod -kontoen, bliver den kopieret til regnearket
  2. Hvis tweetet indeholder et link eller et billede, filtrerer regnearket det ud
  3. Hvis tweetet er en retweet, filtrerer regnearket det ud
  4. Tweets, der får de to filtre, behandles derefter til læsning: # erstattes med ordet "Hashtag", og flere andre tegn erstattes med læsbare ækvivalenter
  5. Den sidste tweet kopieres til den "seneste tweet" -celle, som Alex læser

Trin 2: Trin 2: Opret en dejlig velkomstblok med introduktionslyd

Trin 2: Opret en dejlig velkomstblok med introduktionslyd
Trin 2: Opret en dejlig velkomstblok med introduktionslyd
Trin 2: Opret en dejlig velkomstblok med introduktionslyd
Trin 2: Opret en dejlig velkomstblok med introduktionslyd
Trin 2: Opret en dejlig velkomstblok med introduktionslyd
Trin 2: Opret en dejlig velkomstblok med introduktionslyd

Inden Alexa læser den seneste tweet, genererer jeg tilfældigt en af fire humoristiske himmelske lyde. Disse er MP3'er, der er blevet behandlet for Alexa af storyline. Jeg fandt mine MP3'er på Freesound (Og alt der er virkelig gratis, men vær et anstændigt menneske og lad et tip være).

  1. Download din MP3. Det skal være mindre end 90 sekunder. Alexa handler især om format. Hvis du ved, at det er MPEG Version 2 og 48 kps, kan du springe det næste trin over. Men hvis du ikke ved, eller det er noget anderledes, er det let at konvertere.
  2. Upload den til Storyline til behandling på deres Audio Converter
  3. Vær din downloadede lyd på en HTTPS -server

Hvis trin 3 har du gået "GØR HVAD NU?" du har sandsynligvis ikke adgang til en https -server, som du kan hoste dine filer på. Bare rolig, du kan gøre det med dropbox. Du skal bruge en konto, men igen er en gratis en fin. Her er trinene:

  1. Gå til https://www.dropbox.com/h og log ind på din konto.
  2. Klik på knappen Upload filer
  3. Vælg den mp3 -fil, du har konverteret.
  4. Klik på Del
  5. Klik på Opret et link, og kopier linket
  6. I det link, du kopierede, skal du erstatte "dropbox" med "dl.dropboxusercontent" uden anførselstegn
  7. Kopier denne URL

Du vil nu gå til bunden af din velkomstblok og klikke på ikonet for musiknote.

Indsæt din webadresse i. Hvis du vil tilføje tilfældige variationer, skal du gentage processen for et par mere MP3 og klikke på Hamburger -menuen under URL -indsætningsboksen.

Trin 3: Trin 3: Konfigurer IFTTT

Trin 3: Konfigurer IFTTT
Trin 3: Konfigurer IFTTT
  1. Gå til din IFTTT -konto, og vælg "Opret en ny applet"
  2. Vælg TWITTER som IF -tjenesten.
  3. Vælg "Ny tweet af en bestemt bruger som udløser. Udfyld navnet på den konto, du vil følge
  4. Vælg "Google Sheets" som THEN -tjenesten
  5. Vælg "Tilføj række til regneark"
  6. I feltet "Formateret række" skal du fjerne alt undtagen feltet {{TEKST}}.
  7. Opret din færdighed.

Dette opretter et nyt regneark og tilføjer en række hver gang en ny tweet går ud. Du foretrækker måske at bruge en enkelt celle i dit regneark og simpelthen overskrive dens indhold hver gang. I så fald kan du i trin 5 vælge muligheden for at skrive til en enkelt celle. Jeg kan godt lide at registrere tweets, da jeg med jævne mellemrum flytter dem, der ikke er aktuelle eller reagerer på nyheder, til et "Ældre tweets" -regneark. Vær opmærksom på, at hvis du vælger denne mulighed, skal du foretage nogle vedligeholdelser på dit ark: en ny vil blive oprettet efter 2000 rækker.

Trin 4: Trin 4: Konfigurer dit Google Sheet

Trin 4: Konfigurer dit Google Sheet
Trin 4: Konfigurer dit Google Sheet
Trin 4: Konfigurer dit Google Sheet
Trin 4: Konfigurer dit Google Sheet
Trin 4: Konfigurer dit Google Sheet
Trin 4: Konfigurer dit Google Sheet

Dette Google Sheet er hjertet i denne særlige færdighed, fordi det filtrerer tweets, der ikke fungerer rigtig godt med Alexa (tweets, der f.eks. Refererer til billeder eller tweets med links), og det gør tweets, der kun indeholder tekst, meget mere Alexa -venlig med et par enkle udskiftninger.

Lad IFTT oprette dit regneark med et par poster - så vent bare på et par tweets fra den konto, din sporing lander der, åbn Google Sheets og sorter efter tid, der er oprettet. Du vil se dit skinnende nye regneark lige oven på. Nu vil hver ny tweet være i en ny række, så vi vil oprette en formel, der filtrerer de tweets, der har links eller billeder, og løber igennem for at finde den sidste i kolonnen.

Du kan bare kopiere denne kopi af mit regneark, eller du kan bygge din egen med følgende trin:

  1. Omdøb fanen med tweets i den "Live fra IFTTT"
  2. Tilføj en fane kaldet "Processing Tweets" til regnearket
  3. Tilføj denne formel i celle A8 på fanen Processing Tweets:

= QUERY ('Live from IFTTT'! A3: A2000, "Vælg A Hvor ikke A indeholder 'https'")

Det trækker alle tweets, der ikke har et link, ind i kolonne A i din behandlingsfane.

Nu skal vi finde den sidste tweet i den kolonne. Indsæt følgende formel i celle B7 på behandlingsfanen:

= INDEX (FILTER (A: A, NOT (ISBLANK (A: A)))), RÆKER (FILTER (A: A, NOT (ISBLANK (A: A))))))

Nu vil vi foretage et par udskiftninger for at gøre tweetet lettere for Alexa at læse. Disse kan faktisk alle være en i en enkelt celleformel, men jeg brød dem op for klarhed:

I Cell B6 -pasta på fanen Processing:

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

Det ser på indholdet i cellen herunder og erstatter # -tegnet med ordet "Hashtag"

I Cell B5 indsætter du den næste iteration:

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

Du får ideen.

I Cell B4 pasta:

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

I celle B3:

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

I celle B2 vil vi placere en lidt mere kompliceret formel:

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

Denne slipper simpelthen for ALT, der ikke er et tal, bogstav eller et af de tegnsætningspunkter, som Alexa forstår.

I Cell B1 skal vi simpelthen kopiere den sidste tweet:

= indeks (B2)

Det er den sidste tekst, og du kan programmere historien til at gribe den celle, hvis du kender lidt til JSON, men for at gøre tingene lidt enklere i slutningen af historien, kan jeg godt lide at kopiere indholdet til fanen "Live fra IFTTT" ved at sætte dette formel i A2 under fanen "Live fra IFTTT":

= 'Behandlingscenter'! B1

Groovy. Nu er dit regneark klar og klar til at blive læst af en Storyline JSON -forespørgsel.

Trin 5: Trin 5: Konfigurer din "Seneste Tweet" JSON -forespørgsel i Storyline

Trin 5: Konfigurer din
Trin 5: Konfigurer din
Trin 5: Konfigurer din
Trin 5: Konfigurer din
Trin 5: Konfigurer din
Trin 5: Konfigurer din
  1. Gå til velkomstblokken til din historiefærdighed, og tilføj et trin "Hvad Alexa siger".
  2. Tilføj en indledende sætning som "Her er den seneste tweet fra TheTweetOfGod:"
  3. Brug Hamburger -menuen til at tilføje variationer
  4. Klik på den lille højre pil og vælg "Opret ny blok"

Jeg kaldte min nye blok "Get God Tweet" Opgaven her er at hente den nyeste, filtrerede tweet fra regnearkcellen A2 på den primære fane. Det gør du ved at hente dataene med en JSON -anmodning leveret via Google Sheets API: Det er virkelig ikke andet end en smuk URL.

  1. Klik på det lille ikon helt til højre på din nye blok for at tilføje en JSON -anmodning.
  2. Navngiv din API -anmodning. Jeg kaldte min "GetGodTweet"
  3. Find webadressen til dit regneark ved at gøre dette:

    1. Klik på File -> Publish to Web i dit regneark.
    2. Brug standardværdierne, og klik bare på "Publicer"
    3. Kopier webadressen, og indsæt den i en notatfil.

Mit eksempel er:

"https://docs.google.com/spreadsheets/d/e/2PACX-1vSUnz43PEORZbBES1lQ8ZlJjH_4voh4Guc6SWrfjeGk2bZlY5EBYzLD5-fT633ygo_35Jz97cuUwKuy/pubhtml" skal du have lang tid fra dit dokument fra det dokument, du skal bruge. Det er lidt mellem /d /e og den næste /charter. Så i dette tilfælde:

2PACX-1vSUnz43PEORZbBES1lQ8ZlJjH_4voh4Guc6SWrfjeGk2bZlY5EBYzLD5-fT633ygo_35Jz97cuUwKuy

Du bytter det lange tal ind for bitten i den følgende url, hvor der står "SPREASHEET_ID":

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

  1. Tag nu DEN url, og indsæt den i URL -boksen i JSON -forespørgslen i Storyline.
  2. Vælg mulighed "GET"
  3. Lad feltet "Overskrifter" være tomt
  4. I den næste boks skal du oprette en variabel med indholdet i celle A2 på din første fane ved at indsætte denne formel i:

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

Variablen hedder "tweet". Det kopierer indholdet fra den primære fane 0.

Hvis du nu tilføjer en "Alexa Says" -blok under din JSON -forespørgsel og blot sætter ordet {{tweet}} i krøllede parenteser, siger Alexa indholdet i cellen. Sørg for, at sagen matcher den variabel, du navngav i trin 4 !!!

Tryk på PLAY -knappen på Storyline, og test dine evner! Hvis du får ordet "Null", betyder det, at der er gået noget galt med din API -anmodning.

Det er virkelig det for den grundlæggende færdighed. Jeg tilføjede en sjov lille lydsignatur med en anden MP3 og spurgte, om brugeren vil høre et ældre tweet. Det næste trin viser dig et godt trick til at generere et tilfældigt ældre tweet, men det er frost for dem, der ønsker at bringe deres færdigheder lidt ekstra brugervenlighed.

Trin 6: Valgfri ekstra: Generering af et tilfældigt resultat fra Google Sheets, så Alexa kan læse

Valgfri ekstra: Generering af et tilfældigt resultat fra Google Sheets, så Alexa kan læse
Valgfri ekstra: Generering af et tilfældigt resultat fra Google Sheets, så Alexa kan læse

Hvis du vil tilfældigt generere en af et sæt ældre tweets, er her et smart trick.

Jeg oprettede en tredje fane i mit regneark kaldet "Ældre tweets." Disse optager alle celler A1-A36 i mit regneark

  1. Opret i Storyline en ny blok kaldet "Oldertweets"
  2. Tilføj et JSON -forespørgselstrin
  3. Giv det et navn
  4. I URL -boksen skal du bruge den samme API -URL, som du konstruerede med dit regnearks -id i det seneste tweet -trin, med en variant:

    Skift bit mod slutningen, der siger/od6/basic/public til/3/basic/public - dette kalder TAB 3 i stedet for Tab 1

  5. Vælg "GET"
  6. Lad overskrifter være tomme
  7. Indsæt dette i den næste boks:

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

Du har oprettet en ny variabel, kaldet "oldtweet", og det lille ord "tilfældigt" betyder, at variablen vil ændre sig hver gang JSON -forespørgslen kaldes.

Tilføj endnu et "Alexa Says" -trin, og indsæt din nye variabel, {{oldtweet}} med disse krøllede parenteser. Boom! Tilfældig godhed!

Hvis du nød denne instruktive, bedes du give min færdighed et par stjerner eller en anmeldelse!

Anbefalede: