INHOUDSOPGAWE:

Alexa Vaardigheid: Lees die nuutste tweet (in hierdie geval, Gods): 6 stappe
Alexa Vaardigheid: Lees die nuutste tweet (in hierdie geval, Gods): 6 stappe

Video: Alexa Vaardigheid: Lees die nuutste tweet (in hierdie geval, Gods): 6 stappe

Video: Alexa Vaardigheid: Lees die nuutste tweet (in hierdie geval, Gods): 6 stappe
Video: The Dark Side of Conscious Ai | Daniel Schmachtenberger 2024, November
Anonim
Alexa Skill: Lees die nuutste tweet (in hierdie geval, Gods)
Alexa Skill: Lees die nuutste tweet (in hierdie geval, Gods)

Ek het 'n Alexa Skill gemaak om 'God se nuutste tweet' te lees - die inhoud, dit wil sê van @TweetOfGod, die 5 miljoen+ intekenaarrekening wat deur 'n voormalige komedieskrywer van Daily Show geskep is. Dit gebruik IFTTT (If This Then That), 'n Google-sigblad en die ongelooflik maklik om te gebruik Alexa Skill Builder, Storyline.

Om 'n idee te kry van die eindresultaat, kan u die vaardigheid hier by u Alexa -toestel voeg, of u kan die vaardigheid op Storyline bekyk as u Alexa -rekening nie in die VSA is nie of as u nie 'n Alexa -toestel het nie.

As u 'n Alexa -vaardigheid wil bou wat tweets lees, is dit 'n relatief maklike manier om dit te doen. Daar is geen kodering betrokke as u net my sjablone gebruik nie, maar as u van die pad wil afdwaal, help dit om 'n bietjie te weet oor kode in die algemeen en veral hoe JSON -oproepe gestruktureer is. Maar as u hierdie vaardigheid net vir 'n ander Twitter -rekening herhaal, is dit nie meer nodig om tegniese vaardighede te verwerk nie.

Wat jy nodig het:

  • 'N Alexa -toestel (of 'n rekening met Echoism.io - 'n uitstekende Alexa virtuele simulator)
  • 'N Alexa -ontwikkelaarrekening
  • 'N Google -rekening om 'n sigblad mee te skep
  • 'N Rekening met Storyline
  • 'N Rekening met If This Then That (IFTTT)
  • 'N Dropbox -rekening of 'n plek waar u mp3 -lêers op 'n veilige bediener kan huisves

Al hierdie rekeninge is gratis.

Ek sal nie in detail gaan oor die basiese beginsels van hoe om 'n storielynvaardigheid te skep nie - daar is uitstekende tutoriale op die webwerf om te leer hoe om blokke te skep, dit te verbind en te vertak tussen toestande. Hierdie handleiding fokus op drie dinge wat ek geleer het om hierdie vaardigheid op te bou: om 'n MP3-klankeffek in u vaardigheid te koppel, twitter-inhoud via IFTTT en Google Sheets te verbind, en hoe u 'n ewekansige tweet kan genereer uit 'n stel vooraf geskepte opsies.

(En 'n groot skreeu aan Alexa Skill -ontwikkelaar George Collier, wie se uitstekende tutoriaal oor hoe om Twitter in Alexa te integreer, my aan die gang gesit het.)

Stap 1: Stap 1: Dink aan die algehele vloei van u vaardigheid

Stap 1: Dink na oor die algehele vloei van u vaardigheid
Stap 1: Dink na oor die algehele vloei van u vaardigheid

Storyline is 'n fantastiese manier om Alexa -vaardighede te skep met min of geen kodering nie. U kan blokke op hul plek sleep en neersit en verbindings en paaie tussen aksies opstel deur middel van 'n maklik verstaanbare grafiese koppelvlak. As u ooit Yahoo Pipes gebruik het, sal u die koppelvlak herken.

Een van die lekker dinge van Storyline is dat dit dit redelik maklik maak om Alexa die resultate van enige JSON -navraag te laat hoor. Dit is maklik om data uit 'n Google -sigblad te haal met JSON -navrae. Dit is maklik om tweets IN 'n Google -sigblad te kry met If This Than That. Maklik. Maklik. Maklik.

Ek vind dit die beste om u hele vaardigheid in abstrakte voor te stel voordat u begin.

Toe ek aan my vaardigheid dink, het ek geweet dat die primêre doel daarvan was om die nuutste tweet te lewer. Maar ek kan dit verbeter met 'n bietjie klankontwerp (Storyline laat u vaardigheid toe om enige MP3 te speel), en een tweet is miskien nie genoeg om mense 'n voorsmakie van die rekening te gee nie - ek kan 'n paar van die ouer tweets opberg en dit laat die gebruiker hoor een daarvan na die nuutste. My vaardigheidsvloeiskets kan dus so lyk:

  1. Verwelkom die gebruiker met 'n bietjie gesproke teks en 'n gepaste inleidende klank
  2. Lees die nuutste tweet
  3. Speel 'n handtekeningklank
  4. Vra die gebruiker of hy 'n ouer tweet wil hoor

    1. Ja? Lees 'n ouer tweet.
    2. Speel die handtekeningklank
    3. Geen? Verlaat die vaardigheid.

Die bron van die "Latest Tweet" is 'n Google -sigblad, gevoed deur 'n If This Then That -script. Die proses lyk soos volg:

  1. AS daar 'n nuwe tweet van die @TweetOfGod -rekening is, word dit na die sigblad gekopieer
  2. As die tweet 'n skakel of 'n prent bevat, filter die sigblad dit uit
  3. As die tweet 'n retweet is, filtreer die sigblad dit
  4. Tweets wat deur die twee filters voorkom, word dan verwerk om te lees: # word vervang met die woord "Hashtag" en verskeie ander karakters word vervang met leesbare ekwivalente
  5. Die laaste tweet word gekopieer in die 'nuutste tweet' -sel wat Alex lees

Stap 2: Stap 2: Skep 'n aangename verwelkomingsblok met inleidende klank

Stap 2: Skep 'n aangename verwelkomingsblok met inleidende klank
Stap 2: Skep 'n aangename verwelkomingsblok met inleidende klank
Stap 2: Skep 'n aangename verwelkomingsblok met inleidende klank
Stap 2: Skep 'n aangename verwelkomingsblok met inleidende klank
Stap 2: Skep 'n aangename verwelkomingsblok met inleidende klank
Stap 2: Skep 'n aangename verwelkomingsblok met inleidende klank

Voordat Alexa die nuutste tweet lees, genereer ek lukraak een van vier humoristiese hemelse klanke. Dit is MP3's wat deur die storielyn vir Alexa verwerk is. Ek het my MP3's op Freesound gevind (en alles daar is regtig gratis, maar wees 'n ordentlike mens en laat 'n wenk).

  1. Laai u MP3 af. Dit moet minder as 90 sekondes wees. Alexa gee veral aandag aan formaat. As u weet dat dit MPEG weergawe 2 en 48kps is, kan u die volgende stap oorslaan. Maar as u nie weet of iets anders is nie, is dit maklik om te skakel.
  2. Laai dit op na Storyline vir verwerking by hul Audio Converter
  3. Beheer u afgelaaide klank op 'n HTTPS -bediener

As stap 3 'DOEN WAT NOU?' u het waarskynlik nie toegang tot 'n https -bediener waarop u u lêers kan huisves nie. Moenie bekommerd wees nie, u kan dit doen met dropbox. U het 'n rekening nodig, maar dit is goed. Hier is die stappe:

  1. Gaan na https://www.dropbox.com/h en meld aan by u rekening.
  2. Klik op die knoppie Laai lêers op
  3. Kies die mp3 -lêer wat u omgeskakel het.
  4. Klik op Deel
  5. Klik op Skep 'n skakel en kopieer die skakel
  6. In die skakel wat u gekopieer het, vervang 'dropbox' deur 'dl.dropboxusercontent' sonder die aanhalings
  7. Kopieer die URL

U gaan nou onderaan u verwelkomingsblok en klik op die ikoon Musieknoot.

Plak u URL in. As u ewekansige variasies wil byvoeg, herhaal die proses vir nog 'n paar MP3's en klik op die Hamburger -kieslys onder die URL -plakvak.

Stap 3: Stap 3: Stel IFTTT op

Stap 3: Stel IFTTT op
Stap 3: Stel IFTTT op
  1. Gaan na u IFTTT -rekening en kies 'Skep 'n nuwe applet'
  2. Kies TWITTER as die IF -diens.
  3. Kies "Nuwe tweet deur spesifieke gebruiker as die sneller. Vul die naam in van die rekening wat u wil volg
  4. Kies "Google Blaaie" as die diens dan
  5. Kies 'Voeg ry by sigblad'
  6. Verwyder alles behalwe die {{TEXT}} -veld in die veld "Opgemaakte ry".
  7. Skep u vaardigheid.

Dit skep 'n nuwe sigblad en voeg 'n ry by elke keer as 'n nuwe tweet uitgaan. U verkies om 'n enkele sel op u sigblad te gebruik en die inhoud daarvan telkens te oorskryf. In daardie geval kan u in stap 5 die opsie kies om na 'n enkele sel te skryf. Ek hou daarvan om die tweets by te hou, aangesien ek diegene wat nie aktueel is of op nuus reageer nie, gereeld na 'n 'Ouer tweets' -sigblad skuif. Hou in gedagte dat as u hierdie opsie kies, u u blad moet onderhou: 'n nuwe een sal na 2000 rye geskep word.

Stap 4: Stap 4: Stel u Google -blad op

Stap 4: Stel u Google -blad op
Stap 4: Stel u Google -blad op
Stap 4: Stel u Google -blad op
Stap 4: Stel u Google -blad op
Stap 4: Stel u Google -blad op
Stap 4: Stel u Google -blad op

Hierdie Google-blad is die kern van hierdie spesifieke vaardigheid, want dit filter tweets wat nie regtig goed met Alexa werk nie (tweets wat byvoorbeeld na beelde verwys of tweets met skakels) en dit maak tweets wat slegs teks is, baie meer Alexa -vriendelik met 'n paar eenvoudige vervangings.

Laat IFTT u sigblad met 'n paar inskrywings skep - wag net vir 'n paar tweets van die rekening wat u opsporing daar laat beland het, maak Google Blaaie oop en sorteer volgens die geskepte tyd. U sien u blink nuwe sigblad bo -op. Elke nuwe tweet sal nou in 'n nuwe ry wees, so ons wil 'n formule skep wat die tweets met skakels of beelde sal filter en deurloop om die laaste in die kolom te vind.

U kan hierdie kopie van my sigblad net herhaal, of u kan u eie bou met die volgende stappe:

  1. Hernoem die oortjie met tweets daarin "Live from IFTTT"
  2. Voeg 'n oortjie genaamd "Tweets verwerk" by die sigblad
  3. Voeg hierdie formule in sel A8 van die blad Processing Tweets:

= QUERY ('Live from IFTTT'! A3: A2000, "Select A Where not A contains 'https'")

Dit trek al die tweets wat nie 'n skakel het nie, na kolom A van u verwerkingsoortjie.

Nou moet ons die laaste tweet in die kolom vind. Plak die volgende formule in sel B7 van die verwerkingsoortjie:

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

Nou wil ons 'n paar vervangings doen om die lees van die tweet makliker te maak. Dit kan eintlik almal een in 'n enkele selformule wees, maar ek het dit vir duidelikheid opgebreek:

In Sel B6 -plak van die Verwerking -oortjie:

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

Dit kyk na die inhoud van die sel hieronder en vervang die # -teken met die woord 'Hashtag'

Plak die volgende iterasie in Cell B5:

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

Jy kry die idee.

In sel B4 -pasta:

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

In sel B3:

= snoei (herhaal (B6, "%", "persent"))

In Cell B2 gaan ons 'n effens meer ingewikkelde formule plaas:

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

Hierdie een raak eenvoudig ontslae van ALLES wat nie 'n getal, letter of een van die leestekens is wat Alexa verstaan nie.

In Cell B1 gaan ons eenvoudig die laaste tweet kopieer:

= indeks (B2)

Dit is die laaste teks, en u kan die storielyn programmeer om die sel te gryp as u 'n bietjie van JSON ken, maar om dinge aan die einde van die storielyn 'n bietjie eenvoudiger te maak, kopieer ek graag die inhoud na die 'Live from IFTTT' oortjie deur dit te plaas formule in A2 op die oortjie "Live vanaf IFTTT":

= 'Verwerkingsentrum'! B1

Groovy. Nou is u sigblad opgestel en gereed om deur 'n Storyline JSON -navraag gelees te word.

Stap 5: Stap 5: Stel u JSON -navraag van 'die nuutste tweet' op in storielyn

Stap 5: Stel u
Stap 5: Stel u
Stap 5: Stel u
Stap 5: Stel u
Stap 5: Stel u
Stap 5: Stel u
  1. Gaan na die verwelkomingsblok van u storielyn en voeg 'n stap "Wat Alexa sê" by.
  2. Voeg 'n inleidende frase by soos 'Hier is die nuutste tweet van TheTweetOfGod:'
  3. Gebruik die Hamburger -spyskaart om variasies by te voeg
  4. Klik op die pyltjie na regs en kies "Skep nuwe blok"

Ek het my nuwe blok 'Get God Tweet' genoem. Die taak hier is om die nuutste, gefiltreerde tweet uit die sigbladsel A2 van die primêre oortjie te gaan haal. U doen dit deur die data te gaan haal met 'n JSON -versoek wat via die Google Sheets API afgelewer is: dit is eintlik niks anders as 'n spoggerige URL nie.

  1. Klik op die klein ikoon heel regs op u nuwe blok om 'n JSON -versoek by te voeg.
  2. Noem u API -versoek. Ek het myne 'GetGodTweet' genoem
  3. Soek die URL van u sigblad deur die volgende te doen:

    1. Klik op File -> Publiseer op die web in u sigblad.
    2. Gebruik die standaardwaardes en klik net op "Publiseer"
    3. Kopieer die URL en plak dit in 'n notatielêer.

My voorbeeld is:

"https://docs.google.com/spreadsheets/d/e/2PACX-1vSUnz43PEORZbBES1lQ8ZlJjH_4voh4Guc6SWrfjeGk2bZlY5EBYzLD5-fT633ygo_35Jz97cuUwKuy/pubhtml" sal u nodig hê om 'n lang dokument uit u dokument te benodig. Dit is die bietjie tussen die /d /e en die volgende /handves. So in hierdie geval:

2PACX-1vSUnz43PEORZbBES1lQ8ZlJjH_4voh4Guc6SWrfjeGk2bZlY5EBYzLD5-fT633ygo_35Jz97cuUwKuy

U ruil die lang nommer in vir die bietjie in die volgende url wat sê "SPREASHEET_ID":

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

  1. Neem nou die URL en plak dit in die URL -boks van die JSON -navraag in storielyn.
  2. Kies opsie "KRY"
  3. Laat die "Headers" -boks leeg
  4. In die volgende blokkie gaan u 'n veranderlike skep met die inhoud van sel A2 van u eerste oortjie deur hierdie formule te plak in:

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

Die veranderlike word 'tweet' genoem. Dit kopieer die inhoud vanaf die primêre oortjie 0.

As u 'n "Alexa Says" -blok onder u JSON -navraag byvoeg en net die woord {{tweet}} tussen krulhakies plaas, sê Alexa die inhoud van die sel. Maak seker dat die geval ooreenstem met die veranderlike wat u in stap 4 genoem het !!!

Druk die PLAY -knoppie op Storyline en toets u vaardigheid! As u die woord 'nul' kry, beteken dit dat iets verkeerd gegaan het met u API -versoek.

Dit is eintlik die basiese vaardigheid. Ek het 'n snaakse klankhandtekening bygevoeg met 'n ander MP3, en gevra of die gebruiker 'n ouer tweet wil hoor. Die volgende stap wys u 'n goeie truuk om 'n ewekansige ouer tweet te genereer, maar dit is 'n koue kans vir diegene wat hul vaardighede 'n bietjie ekstra wil gebruik.

Stap 6: Opsioneel Ekstra: Genereer 'n ewekansige resultaat uit Google Sheets sodat Alexa dit kan lees

Opsioneel Ekstra: Genereer 'n ewekansige resultaat uit Google Sheets sodat Alexa kan lees
Opsioneel Ekstra: Genereer 'n ewekansige resultaat uit Google Sheets sodat Alexa kan lees

Hier is 'n maklike truuk as u lukraak een van 'n stel ouer tweets wil genereer.

Ek het 'n derde oortjie in my sigblad met die naam 'Ouer tweets' geskep. Dit beslaan almal selle A1-A36 in my sigblad

  1. Skep in Storyline 'n nuwe blok genaamd "Oldertweets"
  2. Voeg 'n JSON -navraagstap by
  3. Gee dit 'n naam
  4. Gebruik in die URL -blokkie dieselfde API -URL wat u saamgestel het met u sigblad -ID in die nuutste Tweet -stap, met een variasie:

    Verander die bietjie na die einde wat sê/od6/basic/public na/3/basic/public - dit noem TAB 3 in plaas van Tab 1

  5. Kies "KRY"
  6. Laat opskrifte leeg
  7. Plak dit in die volgende blokkie:

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

U het 'n nuwe veranderlike geskep, genaamd 'oldtweet', en die woordjie 'random' beteken dat die veranderlike sal verander elke keer as die JSON -navraag geroep word.

Voeg nog 'n "Alexa Says" -stap by en voeg u nuwe veranderlike, {{oldtweet}} by met die krulhakies. Boem! Willekeurige goedheid!

As u hierdie instruksies geniet het, gee my vaardigheid 'n paar sterre of 'n resensie!

Aanbeveel: