Sadržaj:

Alexa vještina: Pročitajte najnoviji tweet (u ovom slučaju Božji): 6 koraka
Alexa vještina: Pročitajte najnoviji tweet (u ovom slučaju Božji): 6 koraka

Video: Alexa vještina: Pročitajte najnoviji tweet (u ovom slučaju Božji): 6 koraka

Video: Alexa vještina: Pročitajte najnoviji tweet (u ovom slučaju Božji): 6 koraka
Video: ЗАПРЕЩЁННЫЕ ТОВАРЫ с ALIEXPRESS 2023 ШТРАФ и ТЮРЬМА ЛЕГКО! 2024, Maj
Anonim
Alexa Skill: Pročitajte najnoviji tweet (u ovom slučaju Božji)
Alexa Skill: Pročitajte najnoviji tweet (u ovom slučaju Božji)

Napravio sam Alexa vještinu za čitanje "Najnovijeg Božjeg tvita" - sadržaja, odnosno sa @TweetOfGod, računa od 5 miliona pretplatnika koji je stvorio bivši pisac komedije Daily Show. Koristi IFTTT (If This Then That), Google proračunsku tablicu i nevjerojatno jednostavan za korištenje Alexa Skill Builder, Storyline.

Da biste stekli uvid u krajnji rezultat, možete dodati vještinu na svoj Alexa uređaj ovdje ili možete pregledati vještinu na Storyline -u ako vaš Alexa račun nije u SAD -u ili nemate Alexa uređaj.

Ako želite izgraditi Alexa vještinu koja čita tweetove, ovo je relativno jednostavan način. Ne koristite kodiranje ako samo koristite moje predloške, ali ako želite skrenuti s puta, pomaže vam da saznate nešto o kodu općenito, a posebno o tome kako su JSON pozivi strukturirani. Ali ako samo ponavljate ovu vještinu za drugi Twitter račun, to neće zahtijevati tehničke vještine osim izrezivanja i lijepljenja.

Šta će vam trebati:

  • Alexa uređaj (ili račun s Echoism.io - odličnim Alexa virtualnim simulatorom)
  • Alexa Developer račun
  • Google račun za kreiranje proračunske tablice
  • Račun za Storyline
  • Račun sa If This Then That (IFTTT)
  • Dropbox račun ili mjesto na kojem možete smjestiti mp3 datoteke na sigurnom serveru

Svi ovi računi su besplatni.

Neću ulaziti u detalje o osnovama stvaranja vještine Storyline - na web mjestu postoje odlični vodiči za učenje stvaranja blokova, njihovog povezivanja i grananja između uvjeta. Ovaj vodič će se fokusirati na tri stvari koje sam naučio gradeći ovu vještinu: uvođenje MP3 zvučnog efekta u vašu vještinu, povezivanje sadržaja na Twitteru putem IFTTT-a i Google tablica i kako generirati nasumični tweet iz skupa unaprijed stvorenih opcija.

(I veliki pozdrav za Alexa Skill Developera Georgea Colliera, čiji me je odličan vodič za integraciju twittera u Alexa pokrenuo.)

Korak 1: Korak 1: Razmislite o ukupnom toku svoje vještine

Korak 1: Razmislite o ukupnom toku svoje vještine
Korak 1: Razmislite o ukupnom toku svoje vještine

Storyline je fantastičan način za stvaranje Alexa vještina s malo ili bez kodiranja. Blokove možete povući i ispustiti na mjesto i postaviti veze i putanje između radnji putem grafičkog sučelja koje je lako razumjeti. Ako ste ikada koristili Yahoo Pipes, prepoznat ćete sučelje.

Jedna od zgodnih stvari u vezi sa Storyline -om je ta što prilično olakšava navođenje Alexa da govori o rezultatima bilo kojeg JSON upita. Dobijanje podataka iz Google proračunske tablice jednostavno je pomoću JSON upita. Dobivanje tvitova u google proračunsku tablicu pomoću If This Than That je jednostavno. Lako. Lako. Lako.

Smatram da je najbolje da samo zamislite svoju vještinu apstraktno prije nego počnete.

Kad sam razmišljao o svom umijeću, znao sam da mu je primarna svrha samo dostaviti najnoviji tweet. Ali to bih mogao poboljšati uz malo zvučnog dizajna (Storyline dopušta vašoj vještini sviranje bilo kojeg MP3 -a), a jedan tvit možda neće biti dovoljan da ljudima da okus na računu - mogao bih nabaviti neke od starijih tweetova i pustiti ih korisnici čuju jednu od njih nakon najnovijeg. Tako bi moja skica toka vještina mogla izgledati ovako:

  1. Dobrodošli korisniku s malo izgovorenog teksta i odgovarajućim uvodnim zvukom
  2. Pročitajte najnoviji tweet
  3. Reproducirajte zvuk s potpisom
  4. Pitajte korisnika da li bi htio čuti stariji tweet

    1. Da? Pročitajte stariji tweet.
    2. Reproducirajte zvuk s potpisom
    3. Ne? Napustite vještinu.

Izvor "Najnovijeg tvita" je google proračunska tablica, koju podržava skripta If This Then That. Ovaj proces izgleda ovako:

  1. AKO postoji novi tweet s računa @TweetOfGod, on se kopira u proračunsku tablicu
  2. Ako tweet sadrži vezu ili sliku, proračunska tablica to filtrira
  3. Ako je tweet retweet, proračunska tablica ga filtrira
  4. Tweetovi koje dobiju ta dva filtera zatim se obrađuju za čitanje: # se zamjenjuje riječju "Hashtag", a nekoliko drugih znakova zamjenjuje se čitljivim ekvivalentima
  5. Završni tvit se kopira u ćeliju "najnovijeg tvita" koju Alex čita

Korak 2: Korak 2: Napravite lijep blok dobrodošlice sa uvodnim zvukom

Korak 2: Napravite lijep blok dobrodošlice sa uvodnim zvukom
Korak 2: Napravite lijep blok dobrodošlice sa uvodnim zvukom
Korak 2: Napravite lijep blok dobrodošlice sa uvodnim zvukom
Korak 2: Napravite lijep blok dobrodošlice sa uvodnim zvukom
Korak 2: Napravite lijep blok dobrodošlice sa uvodnim zvukom
Korak 2: Napravite lijep blok dobrodošlice sa uvodnim zvukom

Prije nego Alexa pročita najnoviji tweet, nasumično generiram jedan od četiri šaljiva nebeska zvuka. Ovo su MP3 -i koji su za Alexa obrađeni po priči. Našao sam svoje MP3 datoteke na Freesoundu (i tamo je zaista sve besplatno, ali budite pristojno ljudsko biće i ostavite napojnicu).

  1. Preuzmite svoj MP3. Potrebno je manje od 90 sekundi. Alexa se posebno odnosi na format. Ako znate da je MPEG verzija 2 i 48 kps, možete preskočiti sljedeći korak. Ali ako ne znate ili je nešto drugačije, lako je pretvoriti.
  2. Pošaljite ga na Storyline radi obrade na njihovom Audio Converteru
  3. Snimite svoj preuzeti zvuk na HTTPS serveru

Ako u trećem koraku idete "URADITE ŠTA SADA?" vjerovatno nemate pristup https serveru na kojem možete smjestiti svoje datoteke. Ne brinite, to možete učiniti s dropboxom. Trebat će vam račun, ali opet, besplatni je u redu. Evo koraka:

  1. Idite na https://www.dropbox.com/h i prijavite se na svoj račun.
  2. Kliknite na dugme Otpremi datoteke
  3. Odaberite mp3 datoteku koju ste pretvorili.
  4. Kliknite Podijeli
  5. Pritisnite Kreiraj vezu i Kopirajte vezu
  6. Na linku koji ste kopirali zamijenite "dropbox" sa "dl.dropboxusercontent" bez navodnika
  7. Kopirajte taj URL

Sada ćete otići na dno bloka dobrodošlice i kliknuti ikonu muzičke note.

Zalijepite svoj URL. Ako želite dodati slučajne varijacije, ponovite postupak za još nekoliko MP3 zapisa i kliknite na meni Hamburger ispod okvira za lijepljenje URL -a.

Korak 3: Korak 3: Postavite IFTTT

Korak 3: Postavite IFTTT
Korak 3: Postavite IFTTT
  1. Idite na svoj IFTTT račun i odaberite "Kreiraj novi applet"
  2. Odaberite TWITTER kao IF uslugu.
  3. Odaberite "Novi tweet određenog korisnika kao okidač. Unesite ime računa koji želite pratiti
  4. Odaberite "Google tablice" kao uslugu THEN
  5. Odaberite "Dodaj red u proračunsku tablicu"
  6. U polju "Formatirani red" uklonite sve osim polja {{TEXT}}.
  7. Stvorite svoju vještinu.

Ovo stvara novu proračunsku tablicu i dodaje redak svaki put kada se pojavi novi tweet. Možda ćete radije koristiti jednu ćeliju u proračunskoj tablici i svaki put jednostavno prebrisati njen sadržaj. U tom slučaju, u koraku 5 možete odabrati opciju pisanja u jednu ćeliju. Volim voditi evidenciju o tvitovima, jer povremeno premještam one koji nisu aktuelni ili reagiraju na vijesti u tabelu "Stariji tweetovi". Imajte na umu da ćete, ako odaberete ovu opciju, morati napraviti malo održavanja na svom listu: novi će se stvoriti nakon 2000 redaka.

Korak 4: Korak 4: Postavite svoj Google list

Korak 4: Postavite svoj Google list
Korak 4: Postavite svoj Google list
Korak 4: Postavite svoj Google list
Korak 4: Postavite svoj Google list
Korak 4: Postavite svoj Google list
Korak 4: Postavite svoj Google list

Ovaj Google list je srce ove vještine jer filtrira tweetove koji ne funkcioniraju baš najbolje s Alexa (tweetovi koji se odnose na slike, na primjer, ili tweetove s vezama) i čini tweetove samo s tekstom mnogo više Alexa -prijateljski sa nekoliko jednostavnih zamjena.

Dopustite IFTT -u da napravi vašu proračunsku tablicu s nekoliko unosa - pa pričekajte da tamo stigne nekoliko tweetova s računa koje pratite, otvorite Google tablice i sortirajte prema vremenu kreiranja. Vidjet ćete svoju sjajnu novu tablicu na vrhu. Sada će svaki novi tweet biti u novom redu, pa želimo stvoriti formulu koja će filtrirati tweetove koji imaju veze ili slike i proći kroz njih kako bi pronašli posljednji u koloni.

Možete samo kopirati ovu kopiju moje proračunske tablice ili možete napraviti vlastitu sa sljedećim koracima:

  1. Preimenujte karticu s tvitovima u "Uživo s IFTTT -a"
  2. Dodajte tablicu pod nazivom "Obrada tweetova" u proračunsku tablicu
  3. Dodajte ovu formulu u ćeliju A8 kartice Processing Tweets:

= QUERY ('Uživo sa IFTTT -a'! A3: A2000, "Odaberite A gdje nije A sadrži 'https'")

To povlači sve tweetove koji nemaju vezu u kolonu A vaše kartice za obradu.

Sada moramo pronaći zadnji tweet u toj koloni. Zalijepite sljedeću formulu u ćeliju B7 kartice za obradu:

= INDEKS (FILTER (A: A, NOT (ISBLANK (A: A))), REDOVI (FILTER (A: A, NOT (ISBLANK (A: A)))))

Sada želimo napraviti nekoliko zamjena kako bismo Alexa olakšali čitanje tvita. Sve to zapravo može biti jedno u jednoj ćelijskoj formuli, ali sam ih razjasnio radi jasnoće:

U zalijepljenoj ćeliji B6 kartice Obrada:

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

To gleda sadržaj ćelije ispod i zamjenjuje znak # riječju "Hashtag"

U ćeliju B5 zalijepite sljedeću iteraciju:

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

Shvatili ste ideju.

U ćeliji B4 paste:

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

U ćeliji B3:

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

U ćeliju B2 postavit ćemo malo složeniju formulu:

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

Ovaj se jednostavno rješava NIŠEGA što nije broj, slovo ili jedna od interpunkcijskih tačaka koje Alexa razumije.

U ćeliji B1 jednostavno ćemo kopirati konačni tweet:

= indeks (B2)

To je konačni tekst i možete programirati priču kako biste uhvatili tu ćeliju ako znate malo JSON -a, ali da pojednostavimo stvari na kraju priče, volim kopirati sadržaj na karticu "Uživo s IFTTT -a" stavljanjem ove formula u A2 na kartici "Uživo s IFTTT -a":

= 'Centar za obradu'! B1

Groovy. Sada je vaša proračunska tablica postavljena i spremna za čitanje pomoću Storyline JSON upita.

Korak 5: Korak 5: Postavite svoj JSON upit "Najnoviji tweet" u Storyline

Korak 5: Postavite svoj uređaj
Korak 5: Postavite svoj uređaj
Korak 5: Postavite svoj uređaj
Korak 5: Postavite svoj uređaj
Korak 5: Postavite svoj uređaj
Korak 5: Postavite svoj uređaj
  1. Idite na blok dobrodošlice svoje vještine priče i dodajte korak "Ono što Alexa kaže".
  2. Dodajte uvodnu frazu poput "Evo najnovijeg tvita od TheTweetOfGoda:"
  3. Upotrijebite meni Hamburger za dodavanje varijacija
  4. Kliknite na malu strelicu nadesno i odaberite "Kreiraj novi blok"

Svoj novi blok nazvao sam "Get God Tweet" Zadatak ovdje je preuzeti najnoviji, filtrirani tweet iz ćelije A2 proračunske tablice primarne kartice. To postižete preuzimanjem podataka pomoću JSON zahtjeva dostavljenog putem API -ja Google tablice: To nije ništa drugo do fancy URL.

  1. Kliknite na malu ikonu krajnje desno na vašem novom bloku da biste dodali JSON zahtjev.
  2. Imenujte svoj zahtjev za API. Svoju sam nazvao "GetGodTweet"
  3. Pronađite URL svoje proračunske tablice na sljedeći način:

    1. Kliknite Datoteka -> Objavi na webu u svojoj proračunskoj tablici.
    2. Koristite zadane vrijednosti i samo kliknite "Objavi"
    3. Kopirajte URL i zalijepite ga u datoteku bilješke.

Moj primjer je:

https://docs.google.com/spreadsheets/d/e/2PACX-1vSUnz43PEORZbBES1lQ8ZlJjH_4voh4Guc6SWrfjeGk2bZlY5EBYzLD5-fT633ygo_35Jz97cuUwKuy/publog?hl=sr iz tog dokumenta bit će vam potreban taj dug To je bit između /d /e i sljedećeg /znaka. Dakle u ovom slučaju:

2PACX-1vSUnz43PEORZbBES1lQ8ZlJjH_4voh4Guc6SWrfjeGk2bZlY5EBYzLD5-fT633ygo_35Jz97cuUwKuy

Zamijenite taj dugi broj za bit u sljedećem URL -u koji kaže "SPREASHEET_ID":

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

  1. Sada uzmite TAJ url i zalijepite ga u okvir URL -a JSON upita u priči.
  2. Odaberite opciju "DOBI"
  3. Ostavite polje "Zaglavlja" prazno
  4. U sljedećem okviru stvorit ćete varijablu sa sadržajem ćelije A2 prve kartice lijepljenjem ove formule u:

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

Varijabla se naziva "tweet". Kopira sadržaj sa primarne kartice 0.

Sada ako dodate blok "Alexa Says" ispod vašeg JSON upita i stavite samo riječ {{tweet}} u uvijene zagrade, Alexa će izgovoriti sadržaj ćelije. Uvjerite se da se velika slova podudaraju s varijablom koju ste imenovali u koraku 4 !!!

Pritisnite dugme PLAY na Storyline -u i testirajte svoju vještinu! Ako dobijete riječ "Null", to znači da je nešto pošlo po zlu s vašim zahtjevom za API.

To je zaista to za osnovnu vještinu. Dodao sam smiješan mali audio potpis s drugim MP3 -om i upitao želi li korisnik čuti stariji tweet. Sljedeći korak pokazuje vam lijep trik za generiranje slučajnog starijeg tvita, ali je zamrznut za one koji žele svojoj vještini dodati dodatnu upotrebljivost.

Korak 6: Opcionalno dodatno: Generiranje slučajnog rezultata iz Google tablica za čitanje Alexa

Opcija Extra: Generiranje slučajnog rezultata iz Google tablica za čitanje Alexa
Opcija Extra: Generiranje slučajnog rezultata iz Google tablica za čitanje Alexa

Ako želite nasumično generirati jedan od niza starijih tweetova, evo sjajnog trika.

Kreirao sam treću karticu u svojoj proračunskoj tablici pod nazivom "Stariji tweetovi". Sve ovo zauzima ćelije A1-A36 u mojoj proračunskoj tablici

  1. U Storylineu stvorite novi blok pod nazivom "Oldertweets"
  2. Dodajte korak upita JSON upita
  3. Dajte mu ime
  4. U okviru URL -a upotrijebite isti URL API -ja koji ste konstruirali s ID -om proračunske tablice u koraku Najnoviji tweet, s jednom varijacijom:

    Promijenite bit prema kraju koji kaže/od6/basic/public na/3/basic/public - ovo poziva TAB 3 umjesto Tab 1

  5. Odaberite "DOBI"
  6. Ostavite zaglavlja prazna
  7. U sljedeći okvir zalijepite ovo:

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

Kreirali ste novu varijablu, koja se zove "oldtweet", a ta mala riječ "slučajno" znači da će se varijabla mijenjati svaki put kada se pozove JSON upit.

Dodajte još jedan korak "Alexa Says" i umetnite svoju novu varijablu, {{oldtweet}} s tim zavojitim zagradama. Boom! Slučajna dobrota!

Ako vam se svidio ovaj Instructable, dajte mojoj vještini nekoliko zvjezdica ili recenziju!

Preporučuje se: