Innehållsförteckning:

Alexa Skill: Läs den senaste tweeten (i det här fallet, Guds): 6 steg
Alexa Skill: Läs den senaste tweeten (i det här fallet, Guds): 6 steg

Video: Alexa Skill: Läs den senaste tweeten (i det här fallet, Guds): 6 steg

Video: Alexa Skill: Läs den senaste tweeten (i det här fallet, Guds): 6 steg
Video: 3-часовой марафон паранормальных и необъяснимых историй - 3 2024, November
Anonim
Alexa Skill: Läs den senaste tweeten (i det här fallet, Guds)
Alexa Skill: Läs den senaste tweeten (i det här fallet, Guds)

Jag gjorde en Alexa Skill för att läsa "Guds senaste tweet" - innehållet, det vill säga från @TweetOfGod, det 5 miljoner+ abonnentkontot som skapats av en före detta Daily Show -komediförfattare. Den använder IFTTT (If This Then That), ett Google-kalkylblad och den otroligt lättanvända Alexa Skill Builder, Storyline.

För att få en uppfattning om slutresultatet kan du lägga till färdigheten på din Alexa -enhet här, eller så kan du förhandsgranska färdigheten på Storyline om ditt Alexa -konto inte är i USA eller om du inte har en Alexa -enhet.

Om du vill bygga en Alexa -färdighet som läser tweets är detta ett relativt enkelt sätt att göra det. Det är ingen kodning inblandad om du bara använder mina mallar, men om du vill vandra av vägen hjälper det att veta lite om kod i allmänhet och i synnerhet hur JSON -samtal är uppbyggda. Men om du bara replikerar den här färdigheten för ett annat Twitter -konto kommer det inte att kräva tekniska färdigheter bortom klipp och klistra.

Vad du behöver:

  • En Alexa -enhet (eller ett konto med Echoism.io - en fantastisk Alexa virtuell simulator)
  • Ett Alexa Developer -konto
  • Ett Google -konto att skapa ett kalkylark med
  • Ett konto med Storyline
  • Ett konto med If This Then That (IFTTT)
  • Ett dropbox -konto eller en plats där du kan vara värd för mp3 -filer på en säker server

Alla dessa konton är gratis.

Jag kommer inte att gå in på så mycket detaljer om grunderna i hur man skapar en storyline -färdighet - det finns utmärkta självstudier på webbplatsen för att lära sig att skapa block, ansluta dem och förgrena sig mellan förhållanden. Denna handledning kommer att fokusera på tre saker jag lärde mig att bygga den här färdigheten: att få in en MP3-ljudeffekt i din skicklighet, ansluta twitterinnehåll via IFTTT och Google Sheets och hur du genererar en slumpmässig tweet från en uppsättning färdiga alternativ.

(Och ett stort rop till Alexa Skill Developer George Collier, vars utmärkta handledning om att få twitter integrerat i Alexa fick mig igång.)

Steg 1: Steg 1: Tänk på din färdighets övergripande flöde

Steg 1: Tänk på det övergripande flödet av din skicklighet
Steg 1: Tänk på det övergripande flödet av din skicklighet

Storyline är ett fantastiskt sätt att skapa Alexa -färdigheter med liten eller ingen kodning. Du kan dra och släppa block på plats och skapa anslutningar och vägar mellan åtgärder genom ett lättförståeligt grafiskt gränssnitt. Om du någonsin använt Yahoo Pipes känner du igen gränssnittet.

Nu är en av de häftiga sakerna med Storyline att det gör det ganska enkelt att få Alexa att tala om resultatet av en JSON -fråga. Det är enkelt att få ut data från ett Google -kalkylblad med JSON -frågor. Det är enkelt att få tweets till ett Google -kalkylblad med If This Than That. Lätt. Lätt. Lätt.

Jag tycker att det är bäst att bara visualisera hela din färdighet i abstraktitet innan du börjar.

När jag tänkte på min skicklighet, visste jag att det främsta syftet var bara att leverera den senaste tweeten. Men jag kan förbättra det med lite ljuddesign (Storyline tillåter din skicklighet att spela vilken MP3 som helst), och en tweet kanske inte räcker för att ge människor en smak av kontot - jag kan lagra några av de äldre tweetsna och låta användaren hör en av dem efter det senaste. Så min färdighetsflödeskiss kan se ut så här:

  1. Välkommen användaren med lite talad text och ett lämpligt inledande ljud
  2. Läs den senaste tweeten
  3. Spela ett signaturljud
  4. Fråga användaren om de vill höra en äldre tweet

    1. Ja? Läs en äldre tweet.
    2. Spela signaturljudet
    3. Nej? Avsluta skickligheten.

Källan till "Senaste tweeten" är ett Google -kalkylblad, matat av ett If This Then That -skript. Den processen ser ut så här:

  1. OM det finns en ny tweet från @TweetOfGod -kontot kopieras den till kalkylarket
  2. Om tweeten innehåller en länk eller en bild filtrerar kalkylarket bort den
  3. Om tweeten är en retweet filtrerar kalkylarket bort den
  4. Tweets som får de två filtren bearbetas sedan för läsning: # ersätts med ordet "hashtag" och flera andra tecken ersätts med läsbara ekvivalenter
  5. Den sista tweeten kopieras till den "senaste tweet" -cellen som Alex läser

Steg 2: Steg 2: Skapa ett trevligt välkomstblock med introduktionsljud

Steg 2: Skapa ett trevligt välkomstblock med introduktionsljud
Steg 2: Skapa ett trevligt välkomstblock med introduktionsljud
Steg 2: Skapa ett trevligt välkomstblock med introduktionsljud
Steg 2: Skapa ett trevligt välkomstblock med introduktionsljud
Steg 2: Skapa ett trevligt välkomstblock med introduktionsljud
Steg 2: Skapa ett trevligt välkomstblock med introduktionsljud

Innan Alexa läser den senaste tweeten genererar jag slumpmässigt ett av fyra humoristiska himmelska ljud. Det här är MP3 -filer som har bearbetats för Alexa av storyline. Jag hittade mina MP3 -filer på Freesound (Och allt där är verkligen gratis, men var en anständig människa och lämna ett tips).

  1. Ladda ner din MP3. Det måste vara mindre än 90 sekunder. Alexa handlar särskilt om format. Om du vet att det är MPEG version 2 och 48kps kan du hoppa över nästa steg. Men om du inte vet eller om det är något annat är det enkelt att konvertera.
  2. Ladda upp den till Storyline för bearbetning på deras Audio Converter
  3. Värd ditt nedladdade ljud på en HTTPS -server

Om steg 3 säger "GÖR VAD NU?" du har förmodligen inte tillgång till en https -server som du kan vara värd för dina filer på. Oroa dig inte, du kan göra det med dropbox. Du behöver ett konto, men igen är ett gratis ett bra. Här är stegen:

  1. Gå till https://www.dropbox.com/h och logga in på ditt konto.
  2. Klicka på knappen Ladda upp filer
  3. Välj den mp3 -fil som du konverterade.
  4. Klicka på Dela
  5. Klicka på Skapa en länk och kopiera länken
  6. I länken du kopierade, ersätt "dropbox" med "dl.dropboxusercontent" utan citattecken
  7. Kopiera den webbadressen

Du kommer nu att gå till botten av ditt välkomstblock och klicka på ikonen Musiknot.

Klistra in din webbadress. Om du vill lägga till slumpmässiga variationer upprepar du processen för ytterligare några MP3 -filer och klickar på Hamburger -menyn under URL -rutan.

Steg 3: Steg 3: Konfigurera IFTTT

Steg 3: Konfigurera IFTTT
Steg 3: Konfigurera IFTTT
  1. Gå till ditt IFTTT -konto och välj "Skapa en ny applet"
  2. Välj TWITTER som IF -tjänsten.
  3. Välj "Ny tweet av specifik användare som utlösare. Fyll i namnet på det konto du vill följa
  4. Välj "Google Kalkylark" som tjänsten DÅ
  5. Välj "Lägg till rad i kalkylblad"
  6. Ta bort allt utom fältet {{TEXT}} i fältet "Formaterad rad".
  7. Skapa din skicklighet.

Detta skapar ett nytt kalkylblad och lägger till en rad varje gång en ny tweet går ut. Du kanske föredrar att använda en enda cell i kalkylarket och helt enkelt skriva över dess innehåll varje gång. I så fall kan du i steg 5 välja alternativet att skriva till en enda cell. Jag gillar att hålla reda på tweets eftersom jag regelbundet flyttar dem som inte är aktuella eller reagerar på nyheter till ett "äldre tweets" -kalkylblad. Tänk på att om du väljer det här alternativet måste du göra lite underhåll på ditt ark: ett nytt skapas efter 2000 rader.

Steg 4: Steg 4: Konfigurera ditt Google -ark

Steg 4: Konfigurera ditt Google -ark
Steg 4: Konfigurera ditt Google -ark
Steg 4: Konfigurera ditt Google -ark
Steg 4: Konfigurera ditt Google -ark
Steg 4: Konfigurera ditt Google -ark
Steg 4: Konfigurera ditt Google -ark

Det här Google-bladet är hjärtat i den här färdigheten, eftersom det filtrerar bort tweets som inte fungerar riktigt bra med Alexa (tweets som hänvisar till exempel bilder eller tweets med länkar) och det gör text-only tweets mycket mer Alexa -vänligt med några enkla byten.

Låt IFTT skapa ditt kalkylblad med några poster - så vänta bara på några tweets från kontot som din spårning landar där, öppna Google Kalkylark och sortera efter skapad tid. Du kommer att se ditt glänsande nya kalkylblad högst upp. Nu kommer varje ny tweet i en ny rad, så vi vill skapa en formel som filtrerar bort tweets som har länkar eller bilder och kör igenom för att hitta den sista i kolumnen.

Du kan bara kopiera den här kopian av mitt kalkylblad eller bygga din egen med följande steg:

  1. Byt namn på fliken med tweets i "Live from IFTTT"
  2. Lägg till en flik som heter "Processing Tweets" i kalkylarket
  3. Lägg till denna formel i cell A8 på fliken Processing Tweets:

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

Det drar alla tweets som inte har en länk till kolumn A på din bearbetningsflik.

Nu måste vi hitta den sista tweeten i den kolumnen. Klistra in följande formel i cell B7 på fliken bearbetning:

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

Nu vill vi göra några byten för att göra tweeten lättare för Alexa att läsa. Dessa kan faktiskt alla vara en i en enda cellformel, men jag delade upp dem för tydlighetens skull:

I Cell B6 klistra in fliken Bearbetning:

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

Det tittar på innehållet i cellen nedan och ersätter # -tecknet med ordet "hashtag"

Klistra in nästa iteration i cell B5:

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

Du förstår idén.

I Cell B4 -pasta:

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

I cell B3:

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

I Cell B2 kommer vi att placera en lite mer komplicerad formel:

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

Den här blir helt enkelt av med ALLT som inte är en siffra, bokstav eller en av skiljetecken som Alexa förstår.

I Cell B1 ska vi helt enkelt kopiera den sista tweet:

= index (B2)

Det är den slutliga texten och du kan programmera storyline för att ta tag i den cellen om du kan lite JSON, men för att göra saker lite enklare i slutet av berättelsen kopierar jag gärna innehållet till fliken "Live from IFTTT" genom att sätta detta formel i A2 på fliken "Live from IFTTT":

= 'Bearbetningscenter'! B1

Häftig. Nu är ditt kalkylblad klart och redo att läsas av en Storyline JSON -fråga.

Steg 5: Steg 5: Konfigurera din "senaste Tweet" JSON -fråga i Storyline

Steg 5: Konfigurera din
Steg 5: Konfigurera din
Steg 5: Konfigurera din
Steg 5: Konfigurera din
Steg 5: Konfigurera din
Steg 5: Konfigurera din
  1. Gå till välkomstblocket för din storyline -skicklighet och lägg till steget "Vad Alexa säger".
  2. Lägg till en inledande fras som "Här är den senaste tweeten från TheTweetOfGod:"
  3. Använd Hamburgermenyn för att lägga till variationer
  4. Klicka på den lilla högerpilen och välj "Skapa nytt block"

Jag kallade mitt nya block "Get God Tweet" Uppgiften här är att hämta den senaste, filtrerade tweeten från kalkylarkcellen A2 på den primära fliken. Du gör det genom att hämta data med en JSON -begäran som levereras via Google Sheets API: Det är egentligen inget annat än en snygg URL.

  1. Klicka på den lilla ikonen längst till höger i ditt nya block för att lägga till en JSON -begäran.
  2. Namnge din API -begäran. Jag kallade mitt "GetGodTweet"
  3. Hitta webbadressen till ditt kalkylblad genom att göra så här:

    1. Klicka på Arkiv -> Publicera på webben i kalkylarket.
    2. Använd standardvärdena och klicka bara på "Publicera"
    3. Kopiera webbadressen och klistra in den i en anteckningsfil.

Mitt exempel är:

"https://docs.google.com/spreadsheets/d/e/2PACX-1vSUnz43PEORZbBES1lQ8ZlJjH_4voh4Guc6SWrfjeGk2bZlY5EBYzLD5-fT633ygo_35Jz97cuUwKuy/pubhtml" kommer du att behöva det långa ID-dokumentet från det långa ID-dokumentet du behöver. Det är biten mellan /d /e och nästa /charter. Så i det här fallet:

2PACX-1vSUnz43PEORZbBES1lQ8ZlJjH_4voh4Guc6SWrfjeGk2bZlY5EBYzLD5-fT633ygo_35Jz97cuUwKuy

Du byter in det långa numret för biten i följande webbadress som säger "SPREASHEET_ID":

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

  1. Ta nu DEN webbadressen och klistra in den i URL -rutan i JSON -frågan i Storyline.
  2. Välj alternativet "Hämta"
  3. Lämna rutan "Rubriker" tom
  4. I nästa ruta ska du skapa en variabel med innehållet i cell A2 på din första flik genom att klistra in den här formeln i:

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

Variabeln heter "tweet". Det kopierar innehållet från den primära fliken 0.

Om du nu lägger till ett "Alexa Says" -block under din JSON -fråga och bara sätter ordet {{tweet}} inom lockiga parenteser, säger Alexa innehållet i cellen. Se till att fallet matchar variabeln du namngav i steg 4 !!!

Tryck på PLAY -knappen på Storyline och testa din skicklighet! Om du får ordet "Null" betyder det att något gått fel med din API -begäran.

Det är verkligen det för den grundläggande färdigheten. Jag lade till en rolig liten ljudsignatur med en annan MP3 och frågade om användaren vill höra en äldre tweet. Nästa steg visar ett bra trick för att generera en slumpmässig äldre tweet, men det är frost för dem som vill ta med sin skicklighet lite extra användbarhet.

Steg 6: Valfritt extra: Generera ett slumpmässigt resultat från Google Sheets för Alexa att läsa

Valfritt extra: Generera ett slumpmässigt resultat från Google Sheets för Alexa att läsa
Valfritt extra: Generera ett slumpmässigt resultat från Google Sheets för Alexa att läsa

Om du vill slumpmässigt generera en av en uppsättning äldre tweets, här är ett snyggt trick.

Jag skapade en tredje flik i mitt kalkylblad som heter "Äldre tweets". Dessa upptar alla cellerna A1-A36 i mitt kalkylblad

  1. Skapa ett nytt block som heter "Oldertweets" i Storyline
  2. Lägg till ett JSON -frågesteg
  3. Ge det ett namn
  4. I URL -rutan använder du samma API -URL som du konstruerade med ditt kalkylblad -ID i det senaste tweeten -steget, med en variant:

    Ändra biten mot slutet som säger/od6/basic/public till/3/basic/public - detta kallar TAB 3 istället för Tab 1

  5. Välj "GET"
  6. Lämna rubriker tomma
  7. Klistra in följande i nästa ruta:

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

Du har skapat en ny variabel, kallad "oldtweet" och det lilla ordet "random" betyder att variabeln kommer att ändras varje gång JSON -frågan anropas.

Lägg till ytterligare ett "Alexa Says" -steg och sätt in din nya variabel, {{oldtweet}} med de lockiga parenteserna. bom! Slumpmässig godhet!

Om du tyckte om denna instruerbara, snälla ge min skicklighet några stjärnor eller en recension!

Rekommenderad: