Inhaltsverzeichnis:

Alexa Skill: Lesen Sie den neuesten Tweet (in diesem Fall Gottes): - Gunook
Alexa Skill: Lesen Sie den neuesten Tweet (in diesem Fall Gottes): - Gunook

Video: Alexa Skill: Lesen Sie den neuesten Tweet (in diesem Fall Gottes): - Gunook

Video: Alexa Skill: Lesen Sie den neuesten Tweet (in diesem Fall Gottes): - Gunook
Video: MAKE THE PAIN STOP: Transforming YOUR SOUL'S PURPOSE In This LIFETIME! | Cheryl Richardson 2024, April
Anonim
Alexa Skill: Lesen Sie den neuesten Tweet (in diesem Fall Gottes)
Alexa Skill: Lesen Sie den neuesten Tweet (in diesem Fall Gottes)

Ich habe einen Alexa-Skill erstellt, um "Gottes neueste Tweets" zu lesen – den Inhalt von @TweetOfGod, dem über 5 Millionen Abonnentenkonto, das von einem ehemaligen Comedy-Autor der Daily Show erstellt wurde. Es verwendet IFTTT (If This Then That), eine Google-Tabelle und den unglaublich einfach zu bedienenden Alexa Skill Builder Storyline.

Um eine Vorstellung vom Endergebnis zu bekommen, können Sie den Skill hier zu Ihrem Alexa-Gerät hinzufügen oder Sie können den Skill in Storyline in der Vorschau anzeigen, wenn sich Ihr Alexa-Konto nicht in den USA befindet oder Sie kein Alexa-Gerät haben.

Wenn Sie einen Alexa-Skill aufbauen möchten, der Tweets liest, ist dies relativ einfach. Es ist keine Codierung erforderlich, wenn Sie nur meine Vorlagen verwenden, aber wenn Sie den Pfad verlassen möchten, ist es hilfreich, etwas über Code im Allgemeinen und insbesondere über die Struktur von JSON-Aufrufen zu wissen. Aber wenn Sie diese Fähigkeit nur für einen anderen Twitter-Account replizieren, werden keine technischen Fähigkeiten über das Ausschneiden und Einfügen hinaus benötigt.

Was du brauchen wirst:

  • Ein Alexa-Gerät (oder ein Konto bei Echoism.io - ein großartiger virtueller Alexa-Simulator)
  • Ein Alexa-Entwicklerkonto
  • Ein Google-Konto zum Erstellen einer Tabelle mit
  • Ein Konto bei Storyline
  • Ein Konto bei If This Then That (IFTTT)
  • Ein Dropbox-Konto oder ein Ort, an dem Sie MP3-Dateien auf einem sicheren Server hosten können

Alle diese Konten sind kostenlos.

Ich werde nicht auf die Grundlagen zum Erstellen einer Storyline-Fertigkeit eingehen – es gibt ausgezeichnete Tutorials auf der Website, um zu lernen, wie man Blöcke erstellt, sie verbindet und zwischen Bedingungen verzweigt. Dieses Tutorial konzentriert sich auf drei Dinge, die ich beim Aufbau dieses Skills gelernt habe: Einfügen eines MP3-Soundeffekts in Ihren Skill, Verbinden von Twitter-Inhalten über IFTTT und Google Sheets und das Generieren eines zufälligen Tweets aus einer Reihe von vorgefertigten Optionen.

(Und ein großes Lob an Alexa Skill Developer George Collier, dessen exzellentes Tutorial zur Integration von Twitter in Alexa mir den Einstieg erleichtert hat.)

Schritt 1: Schritt 1: Denken Sie über den Gesamtfluss Ihrer Fähigkeiten nach

Schritt 1: Denken Sie über den Gesamtfluss Ihrer Fähigkeiten nach
Schritt 1: Denken Sie über den Gesamtfluss Ihrer Fähigkeiten nach

Storyline ist eine fantastische Möglichkeit, Alexa-Skills mit wenig oder gar keiner Programmierung zu erstellen. Sie können Blöcke per Drag-and-Drop an ihren Platz ziehen und Verbindungen und Pfade zwischen Aktionen über eine leicht verständliche grafische Oberfläche einrichten. Wenn Sie jemals Yahoo Pipes verwendet haben, werden Sie die Benutzeroberfläche wiedererkennen.

Eines der coolen Dinge an Storyline ist, dass es ziemlich einfach ist, Alexa dazu zu bringen, die Ergebnisse jeder JSON-Abfrage zu sprechen. Das Abrufen von Daten aus einer Google-Tabelle ist mit JSON-Abfragen ganz einfach. Tweets IN eine Google-Tabelle mit If This Than That zu bekommen ist einfach. Einfach. Einfach. Einfach.

Ich finde, es ist am besten, sich Ihre gesamte Fähigkeit in abstrakter Form vorzustellen, bevor Sie beginnen.

Als ich über meine Fähigkeiten nachdachte, wusste ich, dass der Hauptzweck nur darin bestand, den neuesten Tweet zu liefern. Aber ich könnte das mit ein wenig Sounddesign verbessern (Storyline ermöglicht es Ihren Fähigkeiten, jede MP3-Datei abzuspielen), und ein Tweet reicht möglicherweise nicht aus, um den Leuten einen Eindruck von dem Konto zu vermitteln – ich könnte einige der älteren Tweets stapeln und lassen der Benutzer hört spätestens eine davon. Meine Skill-Flow-Skizze könnte also so aussehen:

  1. Begrüßen Sie den Benutzer mit ein wenig gesprochenem Text und einem passenden Einführungssound
  2. Lesen Sie den neuesten Tweet
  3. Spielen Sie einen charakteristischen Sound
  4. Fragen Sie den Benutzer, ob er einen älteren Tweet hören möchte

    1. Jawohl? Lesen Sie einen älteren Tweet.
    2. Spielen Sie den Signature-Sound
    3. Nein? Beende die Fertigkeit.

Die Quelle des "Latest Tweet" ist eine Google-Tabelle, die von einem If This Then That-Skript gespeist wird. Dieser Vorgang sieht so aus:

  1. WENN es einen neuen Tweet vom @TweetOfGod-Konto gibt, wird er in die Tabelle kopiert
  2. Wenn der Tweet einen Link oder ein Bild enthält, filtert die Tabelle es heraus
  3. Wenn der Tweet ein Retweet ist, filtert ihn die Tabelle heraus
  4. Tweets, die diese beiden Filter passieren, werden dann zum Lesen verarbeitet: # wird durch das Wort "Hashtag" ersetzt und einige andere Zeichen werden durch lesbare Äquivalente ersetzt
  5. Der letzte Tweet wird in die Zelle "latest tweet" kopiert, die Alex liest

Schritt 2: Schritt 2: Erstellen Sie einen schönen Willkommensblock mit einleitendem Sound

Schritt 2: Erstellen Sie einen schönen Willkommensblock mit einleitendem Sound
Schritt 2: Erstellen Sie einen schönen Willkommensblock mit einleitendem Sound
Schritt 2: Erstellen Sie einen schönen Willkommensblock mit einleitendem Sound
Schritt 2: Erstellen Sie einen schönen Willkommensblock mit einleitendem Sound
Schritt 2: Erstellen Sie einen schönen Willkommensblock mit einleitendem Sound
Schritt 2: Erstellen Sie einen schönen Willkommensblock mit einleitendem Sound

Bevor Alexa den neuesten Tweet liest, generiere ich zufällig einen von vier humorvollen Himmelsgeräuschen. Hierbei handelt es sich um MP3s, die von Storyline für Alexa verarbeitet wurden. Ich habe meine MP3s bei Freesound gefunden (Und alles dort ist wirklich kostenlos, aber sei ein anständiger Mensch und hinterlasse ein Trinkgeld).

  1. Laden Sie Ihre MP3-Datei herunter. Es muss weniger als 90 Sekunden dauern. Alexa legt besonderen Wert auf Formate. Wenn Sie wissen, dass es MPEG Version 2 und 48kps ist, können Sie den nächsten Schritt überspringen. Aber wenn Sie es nicht wissen oder es etwas anders ist, ist es einfach zu konvertieren.
  2. Laden Sie es auf Storyline hoch, um es in ihrem Audiokonverter zu verarbeiten
  3. Hosten Sie Ihr heruntergeladenes Audio auf einem

Wenn Sie in Schritt 3 "WAS JETZT TUN?" Sie haben wahrscheinlich keinen Zugriff auf einen https-Server, auf dem Sie Ihre Dateien hosten können. Keine Sorge, das können Sie mit Dropbox tun. Sie benötigen ein Konto, aber auch hier ist ein kostenloses Konto in Ordnung. Hier sind die Schritte:

  1. Gehen Sie zu https://www.dropbox.com/h und melden Sie sich bei Ihrem Konto an.
  2. Klicken Sie auf die Schaltfläche Dateien hochladen
  3. Wählen Sie die konvertierte MP3-Datei aus.
  4. Klicken Sie auf Teilen
  5. Klicken Sie auf Link erstellen und kopieren Sie den Link
  6. Ersetzen Sie im kopierten Link "dropbox" durch "dl.dropboxusercontent" ohne die Anführungszeichen
  7. Kopieren Sie diese URL

Sie gehen jetzt zum unteren Rand Ihres Willkommensblocks und klicken auf das Musiknotensymbol.

Fügen Sie Ihre URL ein. Wenn Sie zufällige Variationen hinzufügen möchten, wiederholen Sie den Vorgang für einige weitere MP3-Dateien und klicken Sie auf das Hamburger-Menü unter dem URL-Einfügefeld.

Schritt 3: Schritt 3: IFTTT einrichten

Schritt 3: IFTTT einrichten
Schritt 3: IFTTT einrichten
  1. Gehen Sie zu Ihrem IFTTT-Konto und wählen Sie "Neues Applet erstellen".
  2. Wählen Sie TWITTER als IF-Dienst aus.
  3. Wählen Sie als Auslöser "Neuer Tweet eines bestimmten Benutzers". Geben Sie den Namen des Kontos ein, dem Sie folgen möchten
  4. Wählen Sie "Google Tabellen" als DANN-Dienst
  5. Wählen Sie "Zeile zur Tabelle hinzufügen"
  6. Entfernen Sie im Feld "Formatierte Zeile" alles außer dem Feld {{TEXT}}.
  7. Erstellen Sie Ihre Fähigkeit.

Dadurch wird eine neue Tabelle erstellt und jedes Mal, wenn ein neuer Tweet gesendet wird, eine Zeile hinzugefügt. Sie können es vorziehen, eine einzelne Zelle in Ihrer Tabelle zu verwenden und deren Inhalt jedes Mal einfach zu überschreiben. In diesem Fall können Sie in Schritt 5 die Option zum Schreiben in eine einzelne Zelle auswählen. Ich buche die Tweets gerne, da ich die Tweets, die nicht aktuell sind oder auf Neuigkeiten reagieren, regelmäßig in eine Tabelle "Ältere Tweets" verschiebe. Beachten Sie, dass Sie, wenn Sie diese Option wählen, einige Wartungsarbeiten an Ihrem Blatt vornehmen müssen: Nach 2000 Zeilen wird ein neues erstellt.

Schritt 4: Schritt 4: Richten Sie Ihr Google Sheet ein

Schritt 4: Richten Sie Ihr Google Sheet ein
Schritt 4: Richten Sie Ihr Google Sheet ein
Schritt 4: Richten Sie Ihr Google Sheet ein
Schritt 4: Richten Sie Ihr Google Sheet ein
Schritt 4: Richten Sie Ihr Google Sheet ein
Schritt 4: Richten Sie Ihr Google Sheet ein

Dieses Google Sheet ist das Herzstück dieser besonderen Fähigkeit, da es Tweets herausfiltert, die mit Alexa nicht wirklich gut funktionieren (Tweets, die sich beispielsweise auf Bilder beziehen, oder Tweets mit Links) und es macht reine Text-Tweets viel mehr Alexa -freundlich mit ein paar einfachen Ersetzungen.

Lassen Sie IFTT Ihre Tabelle mit wenigen Einträgen erstellen – warten Sie also einfach, bis ein paar Tweets von dem Konto, das Sie verfolgen, dort landen, öffnen Sie Google Sheets und sortieren Sie nach der erstellten Zeit. Sie sehen Ihre glänzende neue Tabelle ganz oben. Jetzt wird jeder neue Tweet in einer neuen Zeile angezeigt, daher möchten wir eine Formel erstellen, die die Tweets mit Links oder Bildern herausfiltert und durchläuft, um den letzten in der Spalte zu finden.

Sie können einfach diese Kopie meiner Tabelle replizieren oder mit den folgenden Schritten Ihre eigene erstellen:

  1. Benennen Sie die Registerkarte mit Tweets in "Live from IFTTT" um.
  2. Fügen Sie der Tabelle einen Tab namens "Tweets verarbeiten" hinzu.
  3. Fügen Sie diese Formel in Zelle A8 des Tabs Tweets verarbeiten ein:

=QUERY('Live von IFTTT'!A3:A2000, "Wähle A aus, wo nicht A 'https' enthält")

Dadurch werden alle Tweets, die keinen Link haben, in Spalte A Ihres Verarbeitungs-Tabs gezogen.

Jetzt müssen wir den letzten Tweet in dieser Spalte finden. Fügen Sie die folgende Formel in Zelle B7 der Registerkarte Verarbeitung ein:

=INDEX(FILTER(A:A, NICHT(ISBLANK(A:A))), ZEILEN(FILTER(A:A, NICHT(ISBLANK(A:A)))))

Jetzt wollen wir ein paar Ersetzungen vornehmen, um den Tweet für Alexa leichter lesbar zu machen. Diese können tatsächlich alle eins in einer einzigen Zellformel sein, aber ich habe sie aus Gründen der Klarheit aufgeteilt:

Fügen Sie in Zelle B6 der Registerkarte Verarbeitung ein:

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

Das schaut sich den Inhalt der Zelle unten an und ersetzt das #-Zeichen durch das Wort "Hashtag".

Fügen Sie in Zelle B5 die nächste Iteration ein:

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

Du hast die Idee.

In Zelle B4 einfügen:

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

In Zelle B3:

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

In Zelle B2 werden wir eine etwas kompliziertere Formel platzieren:

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

Dieser entfernt einfach ALLES, was keine Zahl, kein Buchstabe oder eines der Satzzeichen ist, die Alexa versteht.

In Zelle B1 kopieren wir einfach den letzten Tweet:

=Index(B2)

Das ist der letzte Text und Sie können die Storyline programmieren, um diese Zelle zu erfassen, wenn Sie ein bisschen JSON kennen, aber um die Dinge am Ende der Storyline etwas einfacher zu machen, kopiere ich den Inhalt gerne in die Registerkarte "Live from IFTTT", indem Sie dies einfügen Formel in A2 im Reiter "Live von IFTTT":

='Bearbeitungszentrum'!B1

Groovig. Jetzt ist Ihre Tabelle fertig eingerichtet und kann von einer Storyline-JSON-Abfrage gelesen werden.

Schritt 5: Schritt 5: Richten Sie Ihre "Neueste Tweet"-JSON-Abfrage in Storyline ein

Schritt 5: Richten Sie Ihr ein
Schritt 5: Richten Sie Ihr ein
Schritt 5: Richten Sie Ihr ein
Schritt 5: Richten Sie Ihr ein
Schritt 5: Richten Sie Ihr ein
Schritt 5: Richten Sie Ihr ein
  1. Gehen Sie zum Willkommensblock Ihres Storyline-Skills und fügen Sie einen Schritt "Was Alexa sagt" hinzu.
  2. Füge einen einleitenden Satz hinzu wie "Hier ist der neueste Tweet von TheTweetOfGod:"
  3. Verwenden Sie das Hamburger-Menü, um Variationen hinzuzufügen
  4. Klicken Sie auf den kleinen Pfeil nach rechts und wählen Sie "Neuen Block erstellen"

Ich habe meinen neuen Block "Get God Tweet" genannt. Die Aufgabe hier besteht darin, den neuesten, gefilterten Tweet aus der Tabellenzelle A2 des primären Tabs abzurufen. Sie tun dies, indem Sie die Daten mit einer JSON-Anfrage abrufen, die über die Google Sheets-API geliefert wird: Es ist wirklich nichts anderes als eine ausgefallene URL.

  1. Klicken Sie auf das kleine Symbol ganz rechts in Ihrem neuen Block, um eine JSON-Anfrage hinzuzufügen.
  2. Benennen Sie Ihre API-Anfrage. Ich nannte meine "GetGodTweet"
  3. Finden Sie die URL Ihrer Tabelle wie folgt:

    1. Klicken Sie in Ihrer Tabelle auf Datei -> Im Web veröffentlichen.
    2. Verwenden Sie die Standardwerte und klicken Sie einfach auf "Veröffentlichen".
    3. Kopieren Sie die URL und fügen Sie sie in eine Notizdatei ein.

Mein Beispiel ist:

"https://docs.google.com/spreadsheets/d/e/2PACX-1vSUnz43PEORZbBES1lQ8ZlJjH_4voh4Guc6SWrfjeGk2bZlY5EBYzLD5-fT633ygo_35Jz97cuUwKuy/pubhtml" benötigen Sie zum Extrahieren Ihrer Dokument-ID-Zeilen aus dieser langen Zeichenfolge der IDug. Es ist das Bit zwischen dem /d/e und dem nächsten /-Zeichen. Also in diesem Fall:

2PACX-1vSUnz43PEORZbBES1lQ8ZlJjH_4voh4Guc6SWrfjeGk2bZlY5EBYzLD5-fT633ygo_35Jz97cuUwKuy

Sie tauschen diese lange Zahl gegen das Bit in der folgenden URL ein, die "SPREASHEET_ID" sagt:

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

  1. Nehmen Sie nun DIESE URL und fügen Sie sie in das URL-Feld der JSON-Abfrage in Storyline ein.
  2. Wählen Sie die Option "GET"
  3. Lassen Sie das Feld "Kopfzeilen" leer
  4. Im nächsten Feld erstellen Sie eine Variable mit dem Inhalt von Zelle A2 Ihrer ersten Registerkarte, indem Sie diese Formel einfügen in:

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

Die Variable heißt "tweet". Es kopiert den Inhalt von der primären Registerkarte 0.

Wenn Sie nun unter Ihrer JSON-Abfrage einen "Alexa sagt"-Block hinzufügen und nur das Wort {{tweet}} in geschweifte Klammern setzen, sagt Alexa den Inhalt der Zelle. Stellen Sie sicher, dass die Groß-/Kleinschreibung der Variablen entspricht, die Sie in Schritt 4 benannt haben!!!

Drücken Sie die PLAY-Taste auf Storyline und testen Sie Ihr Können! Wenn Sie das Wort "Null" erhalten, bedeutet dies, dass bei Ihrer API-Anfrage etwas schief gelaufen ist.

Das ist es wirklich für die Grundfertigkeit. Ich habe eine lustige kleine Audiosignatur mit einer anderen MP3-Datei hinzugefügt und gefragt, ob der Benutzer einen älteren Tweet hören möchte. Der nächste Schritt zeigt Ihnen einen netten Trick zum Generieren eines zufälligen älteren Tweets, aber es ist Zuckerguss für diejenigen, die ihren Fähigkeiten zusätzliche Benutzerfreundlichkeit verleihen möchten.

Schritt 6: Optionales Extra: Generieren eines zufälligen Ergebnisses aus Google Sheets zum Lesen von Alexa

Optionales Extra: Generieren eines zufälligen Ergebnisses aus Google Sheets für Alexa zum Lesen
Optionales Extra: Generieren eines zufälligen Ergebnisses aus Google Sheets für Alexa zum Lesen

Wenn Sie zufällig einen aus einer Reihe älterer Tweets generieren möchten, ist hier ein raffinierter Trick.

Ich habe in meiner Tabelle einen dritten Tab namens "Ältere Tweets" erstellt. Diese belegen alle die Zellen A1-A36 in meiner Tabelle

  1. Erstellen Sie in Storyline einen neuen Block namens "Ältere Tweets".
  2. JSON-Abfrageschritt hinzufügen
  3. Gib ihm einen Namen
  4. Verwenden Sie im URL-Feld dieselbe API-URL, die Sie mit Ihrer Tabellen-ID im Schritt Letzter Tweet erstellt haben, mit einer Variante:

    Ändern Sie das Bit gegen Ende, das /od6/basic/public sagt, in /3/basic/public - dies ruft TAB 3 anstelle von Tab 1 auf

  5. Wählen Sie "ERHALTEN"
  6. Kopfzeilen leer lassen
  7. Fügen Sie im nächsten Feld Folgendes ein:

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

Sie haben eine neue Variable namens "oldtweet" erstellt und das kleine Wort "random" bedeutet, dass sich die Variable jedes Mal ändert, wenn die JSON-Abfrage aufgerufen wird.

Fügen Sie einen weiteren "Alexa Says"-Schritt hinzu und fügen Sie Ihre neue Variable {{oldtweet}} mit diesen geschweiften Klammern ein. Boom! Zufällige Güte!

Wenn Sie dieses Instructable genossen haben, geben Sie bitte meine Fähigkeit ein paar Sterne oder eine Bewertung!

Empfohlen: