Cuprins:
- Pasul 1: Pasul 1: Gândiți-vă la fluxul general al abilităților dvs
- Pasul 2: Pasul 2: Creați un bloc de primire frumos cu sunet introductiv
- Pasul 3: Pasul 3: Configurați IFTTT
- Pasul 4: Pasul 4: configurați foaia dvs. Google
- Pasul 5: Pasul 5: Configurați interogarea JSON „Ultimul Tweet” în Storyline
- Pasul 6: Extra opțional: generarea unui rezultat aleatoriu din Foi de calcul Google pentru ca Alexa să poată citi
Video: Alexa Skill: Citiți ultimul Tweet (în acest caz, al lui Dumnezeu): 6 pași
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:43
Am făcut o abilitate Alexa pentru a citi „Ultimul Tweet al lui Dumnezeu” - conținutul, adică de la @TweetOfGod, contul de 5 milioane de abonați + creat de un fost scriitor de comedie Daily Show. Folosește IFTTT (If This Then That), o foaie de calcul Google și incredibil de ușor de utilizat Alexa Skill Builder, Storyline.
Pentru a vă face o idee despre rezultatul final, puteți adăuga abilitatea dispozitivului dvs. Alexa aici sau puteți previzualiza abilitatea pe Storyline dacă contul dvs. Alexa nu se află în SUA sau nu aveți un dispozitiv Alexa.
Dacă doriți să construiți o abilitate Alexa care citește tweets, acesta este un mod relativ ușor de a face acest lucru. Nu există nici o codificare implicată dacă folosiți doar șabloanele mele, dar dacă doriți să vă îndepărtați de cale, vă ajută să cunoașteți puțin codul în general și, în special, modul în care sunt structurate apelurile JSON. Dar dacă tocmai replicați această abilitate pentru un cont Twitter diferit, nu va necesita abilități tehnice dincolo de tăiere și lipire.
De ce veți avea nevoie:
- Un dispozitiv Alexa (sau un cont cu Echoism.io - un simulator virtual Alexa excelent)
- Un cont de dezvoltator Alexa
- Un cont google pentru a crea o foaie de calcul
- Un cont cu Storyline
- Un cont cu If This Then That (IFTTT)
- Un cont dropbox sau un loc unde puteți găzdui fișiere mp3 pe un server securizat
Toate aceste conturi sunt gratuite.
Nu voi intra în prea multe detalii despre noțiunile de bază despre cum să creați o abilitate Storyline - există tutoriale excelente pe site pentru a învăța cum să creați blocuri, să le conectați și să vă ramificați între condiții. Acest tutorial se va concentra pe trei lucruri pe care le-am învățat construind această abilitate: obținerea unui efect de sunet MP3 în abilitatea ta, conectarea conținutului twitter prin IFTTT și Foi de calcul Google și modul de generare a unui tweet aleatoriu dintr-un set de opțiuni pre-create.
(Și un strigăt mare către dezvoltatorul de abilități Alexa George Collier, al cărui excelent tutorial despre integrarea twitter-ului în Alexa m-a făcut să încep.)
Pasul 1: Pasul 1: Gândiți-vă la fluxul general al abilităților dvs
Storyline este o modalitate fantastică de a crea abilități Alexa cu codificare redusă sau deloc. Puteți trage și plasa blocuri în loc și configura conexiuni și căi între acțiuni printr-o interfață grafică ușor de înțeles. Dacă ați folosit vreodată Yahoo Pipes, veți recunoaște interfața.
Acum, unul dintre lucrurile interesante despre Storyline este că face destul de ușor să faci pe Alexa să spună rezultatele oricărei interogări JSON. Obținerea datelor dintr-o foaie de calcul Google este ușoară cu interogările JSON. Obținerea tweet-urilor într-o foaie de calcul Google cu ajutorul If This Than That este ușor. Uşor. Uşor. Uşor.
Consider că este mai bine să vă vizualizați întreaga abilitate în abstract înainte de a începe.
Când m-am gândit la abilitățile mele, am știut că scopul său principal era doar să transmit cel mai recent tweet. Dar aș putea îmbunătăți acest lucru cu un pic de design de sunet (Storyline îți permite abilitățile de a reda orice MP3), iar un tweet ar putea să nu fie suficient pentru a oferi oamenilor o aromă a contului - aș putea stoca unele dintre tweet-urile mai vechi și lăsa utilizatorul aude unul dintre acestea după cel mai recent. Deci, schița mea de flux de abilități ar putea arăta astfel:
- Bun venit utilizatorului cu un pic de text vorbit și un sunet introductiv adecvat
- Citiți cel mai recent tweet
- Redați un sunet semnat
-
Întrebați utilizatorul dacă ar dori să audă un tweet mai vechi
- Da? Citiți un tweet mai vechi.
- Redați sunetul semnăturii
- Nu? Ieși din abilitate.
Sursa „Ultimului Tweet” este o foaie de calcul Google, alimentată de un script If This Then That. Acest proces arată ca acesta:
- DACĂ există un nou tweet din contul @TweetOfGod, acesta va fi copiat în foaia de calcul
- Dacă tweet-ul conține un link sau o imagine, foaia de calcul îl filtrează
- Dacă tweet-ul este un retweet, foaia de calcul îl filtrează
- Tweet-urile care primesc aceste două filtre sunt apoi procesate pentru citire: # este înlocuit cu cuvântul „Hashtag” și alte câteva caractere sunt înlocuite cu echivalente lizibile
- Ultimul tweet este copiat în celula „ultimul tweet” pe care Alex îl citește
Pasul 2: Pasul 2: Creați un bloc de primire frumos cu sunet introductiv
Înainte ca Alexa să citească ultimul tweet, generez aleatoriu unul dintre cele patru sunete cerești umoristice. Acestea sunt fișiere MP3 care au fost procesate pentru Alexa prin poveste. Mi-am găsit MP3-urile pe Freesound (Și totul este cu adevărat gratuit, dar fii o ființă umană decentă și lasă un sfat).
- Descarcă MP3-ul tău. Trebuie să fie mai puțin de 90 de secunde. Alexa este deosebit despre format. Dacă știți că este MPEG versiunea 2 și 48kps, puteți sări peste pasul următor. Dar dacă nu știți sau este ceva diferit, este ușor de convertit.
- Încărcați-l pe Storyline pentru procesare la convertorul audio
- Găzduiți sunetul descărcat pe un server
Dacă pasul 3 te duci „FĂ CE ACUM?” probabil că nu aveți acces la un server https pe care vă puteți găzdui fișierele. Nu vă faceți griji, puteți face asta cu dropbox. Veți avea nevoie de un cont, dar din nou, unul gratuit este bine. Iată pașii:
- Accesați https://www.dropbox.com/h și conectați-vă la contul dvs.
- Faceți clic pe butonul Încărcare fișiere
- Selectați fișierul mp3 pe care l-ați convertit.
- Faceți clic pe Distribuiți
- Faceți clic pe Creați un link și copiați linkul
- În linkul pe care l-ați copiat, înlocuiți „dropbox” cu „dl.dropboxusercontent” fără ghilimele
- Copiați adresa URL respectivă
Acum veți accesa partea de jos a blocului dvs. de bun venit și faceți clic pe pictograma Notă muzicală.
Inserați adresa URL. Dacă doriți să adăugați variante aleatorii, repetați procesul pentru încă câteva MP3 și faceți clic pe meniul Hamburger de sub caseta de lipire URL.
Pasul 3: Pasul 3: Configurați IFTTT
- Accesați contul IFTTT și selectați „Creați un applet nou”
- Selectați TWITTER ca Serviciu IF.
- Selectați „Tweet nou de la un anumit utilizator ca declanșator. Completați numele contului pe care doriți să îl urmăriți
- Selectați „Foi de calcul Google” ca serviciu THEN
- Selectați „Adăugați rând la foaia de calcul”
- În câmpul „Rând formatat”, eliminați totul, cu excepția câmpului {{TEXT}}.
- Creați-vă abilitățile.
Aceasta creează o nouă foaie de calcul și adaugă un rând de fiecare dată când un nou tweet se stinge. S-ar putea să preferați să utilizați o singură celulă pe foaia de calcul și să suprascrieți conținutul acesteia de fiecare dată. În acest caz, la pasul 5 puteți alege opțiunea de a scrie într-o singură celulă. Îmi place să țin o evidență a tweet-urilor, deoarece le mut periodic pe cele care nu sunt de actualitate sau care reacționează la știri într-o foaie de calcul „Older Tweets”. Rețineți că, dacă alegeți această opțiune, va trebui să faceți o întreținere pe foaia dvs.: una nouă va fi creată după 2000 de rânduri.
Pasul 4: Pasul 4: configurați foaia dvs. Google
Această foaie Google este esența acestei abilități speciale, deoarece filtrează tweet-urile care nu funcționează prea bine cu Alexa (tweets care se referă la imagini, de exemplu, sau tweets cu linkuri) și face tweets-uri cu text mult mai mult Alexa -prieten cu câteva înlocuiri simple.
Lăsați IFTT să vă creeze foaia de calcul cu câteva intrări - așa că așteptați doar câteva tweets din contul urmăririi dvs. pentru a ajunge acolo, deschideți Foi de calcul Google și sortați după timpul creat. Veți vedea noua dvs. foaie de calcul strălucitoare chiar deasupra. Acum, fiecare tweet nou va fi într-un rând nou, așa că dorim să creăm o formulă care să filtreze tweet-urile care au linkuri sau imagini și să ruleze pentru a găsi ultimul din coloană.
Puteți doar să replicați această copie a foii mele de calcul sau vă puteți construi propria cu următorii pași:
- Redenumiți fila cu tweets în „Live from IFTTT”
- Adăugați o foaie numită „Prelucrarea tweeturilor” în foaia de calcul
- Adăugați această formulă în celula A8 a filei Procesare tweets:
= QUERY („Live din IFTTT”! A3: A2000, „Selectați A Unde nu A conține„
Aceasta atrage toate tweet-urile care nu au un link în coloana A a filei dvs. de procesare.
Acum trebuie să găsim ultimul tweet din acea coloană. Lipiți următoarea formulă în celula B7 a filei de procesare:
= INDEX (FILTER (A: A, NOT (ISBLANK (A: A)))), ROWS (FILTER (A: A, NOT (ISBLANK (A: A))))))
Acum vrem să facem câteva înlocuiri pentru a facilita citirea tweet-ului pentru Alexa. Acestea pot fi de fapt toate într-o singură formulă de celulă, dar le-am despărțit pentru claritate:
În celula B6, lipiți fila Procesare:
= trim (regexreplace (B7, "#", "Hashtag"))
Acesta privește conținutul celulei de mai jos și înlocuiește semnul # cu cuvântul „Hashtag”
În celula B5 lipiți următoarea iterație:
= trim (regexreplace (B6, "@", "at"))
Ai ideea.
În celula B4 lipiți:
= trim (reexxreplace (B6, "&", "and"))
În celula B3:
= trim (reexxreplace (B6, "%", "percent"))
În celula B2 vom plasa o formulă puțin mai complicată:
= ArrayFormula (REGEXREPLACE (B3, "([^ A-Za-z0-9.,!?:; '’]) "," "))
Acesta pur și simplu scapă de ORICARE care nu este un număr, o literă sau unul dintre punctele de punctuație pe care le înțelege Alexa.
În celula B1 vom copia pur și simplu ultimul tweet:
= index (B2)
Acesta este textul final și puteți programa povestea pentru a obține acea celulă dacă știți un pic de JSON, dar pentru a face lucrurile puțin mai simple la sfârșitul povestirii, îmi place să copiez conținutul în fila „Trăiește din IFTTT” punând acest lucru formula în A2 din fila „Live from IFTTT”:
= „Centru de procesare”! B1
Macabru. Acum foaia dvs. de calcul este configurată și gata de citire printr-o interogare Storyline JSON.
Pasul 5: Pasul 5: Configurați interogarea JSON „Ultimul Tweet” în Storyline
- Mergeți la blocul de bun venit al abilităților dvs. de poveste și adăugați un pas „Ce spune Alexa”.
- Adăugați o frază introductivă de genul „Iată cel mai recent tweet de la TheTweetOfGod:”
- Utilizați meniul Hamburger pentru a adăuga variante
- Faceți clic pe săgeata din dreapta și selectați „Creați un bloc nou”
Am numit noul meu bloc „Get God Tweet” Sarcina de aici este să aduc acel ultim tweet filtrat din celula de foaie de calcul A2 a filei principale. Faceți acest lucru preluând datele cu o solicitare JSON livrată prin intermediul API-ului Google Sheets: Nu este altceva decât o adresă URL de lux.
- Faceți clic pe pictograma din dreapta de pe noul bloc pentru a adăuga o cerere JSON.
- Denumiți solicitarea API. L-am numit pe al meu „GetGodTweet”
-
Găsiți adresa URL a foii de calcul procedând astfel:
- Faceți clic pe Fișier -> Publicați pe web în foaia dvs. de calcul.
- Utilizați valorile implicite și faceți clic pe „Publicați”
- Copiați adresa URL și lipiți-o într-un fișier de note.
Exemplul meu este:
„https://docs.google.com/spreadsheets/d/e/2PACX-1vSUnz43PEORZbBES1lQ8ZlJjH_4voh4Guc6SWrfjeGk2bZlY5EBYzLD5-fT633ygo_35Jz97cuUwKuy/pubhtml” Este bitul dintre / d / e și următorul / caracter. Deci, în acest caz:
2PACX-1vSUnz43PEORZbBES1lQ8ZlJjH_4voh4Guc6SWrfjeGk2bZlY5EBYzLD5-fT633ygo_35Jz97cuUwKuy
Schimbați acel număr lung pentru bit în următoarea adresă URL care spune „SPREASHEET_ID”:
„https://spreadsheets.google.com/feeds/list/SPREADSHEET_ID/od6/public/basic?alt=json”
- Acum luați acea URL și lipiți-o în caseta URL a interogării JSON din Storyline.
- Selectați opțiunea „OBȚINE”
- Lăsați caseta „Anteturi” necompletată
- În următoarea casetă, veți crea o variabilă cu conținutul celulei A2 din prima filă, lipind această formulă în:
tweet = api_response.feed.entry.0.title. $ t
Variabila este denumită „tweet”. Copiază conținutul din fila principală 0.
Acum, dacă adăugați un bloc „Alexa spune” sub interogarea dvs. JSON și puneți doar cuvântul {{tweet}} între paranteze buclate, Alexa va spune conținutul celulei. Asigurați-vă că cazul se potrivește cu variabila pe care ați numit-o la pasul 4 !!!
Apăsați butonul PLAY pe Storyline și testați-vă abilitățile! Dacă primiți cuvântul „Nul” înseamnă că ceva nu a funcționat corect cu solicitarea dvs. API.
Asta chiar este pentru abilitatea de bază. Am adăugat o mică semnătură amuzantă audio cu un alt MP3 și am întrebat dacă utilizatorul vrea să audă un tweet mai vechi. Următorul pas vă arată un truc frumos pentru generarea unui tweet mai vechi aleatoriu, dar este înghețat pentru cei care doresc să-și aducă abilitățile o mai mare utilizare.
Pasul 6: Extra opțional: generarea unui rezultat aleatoriu din Foi de calcul Google pentru ca Alexa să poată citi
Dacă doriți să generați aleatoriu unul dintre seturile de tweets mai vechi, iată un truc ingenios.
Am creat o a treia filă în foaia de calcul numită „Tweeturi mai vechi”. Toate acestea ocupă celulele A1-A36 din foaia mea de calcul
- În Storyline, creați un bloc nou numit „Oldertweets”
- Adăugați un pas de interogare JSON
- Dă-i un nume
-
În caseta URL, utilizați aceeași adresă URL API pe care ați construit-o cu ID-ul foii de calcul în pasul Ultimul Tweet, cu o variantă:
Schimbați bitul spre sfârșit, care spune / od6 / basic / public în / 3 / basic / public - acesta apelează TAB 3 în loc de Tab 1
- Selectați „OBȚINE”
- Lăsați anteturile necompletate
- În următoarea casetă, lipiți acest lucru:
oldtweet = api_response.feed.entry.random.title. $ t
Ați creat o nouă variabilă, numită „oldtweet”, iar acel cuvânt „aleatoriu” înseamnă că variabila se va schimba de fiecare dată când este apelată interogarea JSON.
Adăugați un alt pas „Alexa spune” și introduceți noua variabilă, {{oldtweet}} cu acele paranteze cretate. Boom! Bunătate aleatorie!
Dacă ți-a plăcut acest Instructable, dă-mi abilităților câteva stele sau o recenzie!
Recomandat:
Măsurați distanța cu senzorul cu ultrasunete HC-SRF04 (ultimul 2020): 3 pași
Măsurați distanța cu senzorul cu ultrasunete HC-SRF04 (ultimul 2020): Ce este senzorul cu ultrasunete (distanță)? O ultrasunete (Sonar) cu unde de nivel înalt pe care oamenii nu le pot auzi. Cu toate acestea, putem vedea prezența undelor ultrasonice peste tot în natură. La animale precum liliecii, delfinii … folosiți unde ultrasonice pentru
Ultimul bloc de cuțite: 11 pași (cu imagini)
The Ultimate Knife Block: Am fost cu toții acolo, tocând legumele cu un cuțit atât de contondent încât ar fi mai eficient să folosești o linguriță. În acel moment, reflectați la modul în care ați ajuns acolo: cuțitele dvs. erau ascuțite ca aparatele de ras când le-ați cumpărat, dar acum, la trei ani în urmă
Ultimul comutator de lumină: 6 pași (cu imagini)
Ultimul comutator de lumină: Scopul acestui instructiv este de a explica modul în care am realizat un comutator de lumină conectat la wifi (numit și telecomandă în continuare). Scopul acestor telecomenzi este de a porni și dezactiva mai multe relee conectate la wifi. Releele nu sunt explicate în acest instructable
Ultimul quadcopter din PVC: 16 pași (cu imagini)
The Ultimate PVC Quadcopter: Fie că sunteți un începător în căutarea unui quadcopter care să vă ajute să vă udați picioarele în construcția zero, fie că sunteți puțin mai experimentat și căutați doar un cadru ieftin și fiabil, nu căutați mai departe de Quadcopter din PVC final! Aceasta
Construiți un generator de muzică și lumină aleatoriu și vedeți dovezile lui DUMNEZEU: 4 pași
Construiți un generator aleator de muzică și lumină și vedeți dovezile lui DUMNEZEU: Generarea de numere cu adevărat aleatorii pare a fi imposibilă. Cu toate acestea, este destul de ușor să utilizați un microcontroler pentru a genera numere pseudo-aleatorii și apoi să le utilizați pentru a afișa sunete și lumini colorate diferite. În timp ce muzica generată este n