תוכן עניינים:

Alexa Skill: קרא את הציוץ האחרון (במקרה הזה, אלוהים): 6 שלבים
Alexa Skill: קרא את הציוץ האחרון (במקרה הזה, אלוהים): 6 שלבים

וִידֵאוֹ: Alexa Skill: קרא את הציוץ האחרון (במקרה הזה, אלוהים): 6 שלבים

וִידֵאוֹ: Alexa Skill: קרא את הציוץ האחרון (במקרה הזה, אלוהים): 6 שלבים
וִידֵאוֹ: The Internet of Things by James Whittaker of Microsoft 2024, מאי
Anonim
Alexa Skill: קרא את הציוץ האחרון (במקרה זה, אלוהים)
Alexa Skill: קרא את הציוץ האחרון (במקרה זה, אלוהים)

עשיתי מיומנות של Alexa לקריאת "הציוץ האחרון של אלוהים" - התוכן, כלומר מ- @TweetOfGod, חשבון המנוי של יותר מ -5 מיליון משתמשים שיצר כותב קומדיה לשעבר ב- Daily Show. הוא משתמש ב- IFTTT (If This Then That), בגיליון אלקטרוני של Google ובבניית מיומנויות Alexa Skill, קלה להפעלה, Storyline.

כדי לקבל מושג על התוצאה הסופית, תוכל להוסיף את המיומנות למכשיר ה- Alexa שלך כאן, או שתוכל לצפות בתצוגה מקדימה של המיומנות ב- Storyline אם חשבון Alexa שלך אינו בארה ב או שאין לך מכשיר Alexa.

אם אתה רוצה לבנות מיומנות Alexa שקוראת ציוצים, זוהי דרך קלה יחסית לעשות זאת. אין צורך בקידוד אם אתה משתמש רק בתבניות שלי, אבל אם אתה רוצה לסטות מהנתיב זה עוזר לדעת קצת על קוד באופן כללי ובפרט כיצד בנויות שיחות JSON. אבל אם אתה רק משכפל את המיומנות הזו עבור חשבון טוויטר אחר, זה לא ידרש מיומנויות טכניות מעבר לגזור ולהדביק.

מה אתה צריך:

  • מכשיר Alexa (או חשבון ב- Echoism.io - סימולטור וירטואלי נהדר של Alexa)
  • חשבון מפתח Alexa
  • חשבון גוגל ליצירת גיליון אלקטרוני איתו
  • חשבון ב- Storyline
  • חשבון עם If This Then That (IFTTT)
  • חשבון dropbox או מקום בו תוכל לארח קבצי mp3 בשרת מאובטח

כל החשבונות האלה הם בחינם.

לא אפרט יותר מידי על היסודות של יצירת מיומנות Storyline - יש באתר הדרכות מצוינות ללימוד יצירת בלוקים, חיבורם והסתעפות בין התנאים. הדרכה זו תתמקד בשלושה דברים שלמדתי בבניית מיומנות זו: הכנסת אפקט צליל MP3 למיומנות שלך, חיבור תוכן טוויטר באמצעות IFTTT ו- Google Sheets, וכיצד ניתן ליצור ציוץ אקראי ממכלול של אפשרויות שנוצרו מראש.

(וצעקה גדולה למפתחת מיומנויות אלקסה ג'ורג 'קולייר, שהדרכה המעולה שלו לשילוב הטוויטר באלקסה התחילה אותי.)

שלב 1: שלב 1: חשוב על הזרימה הכוללת של המיומנות שלך

שלב 1: חשוב על הזרימה הכוללת של המיומנות שלך
שלב 1: חשוב על הזרימה הכוללת של המיומנות שלך

Storyline היא דרך פנטסטית ליצור כישורי Alexa עם מעט קידוד או ללא קידוד. אתה יכול לגרור ולשחרר בלוקים למקומם ולהקים חיבורים ומסלולים בין פעולות באמצעות ממשק גרפי קל להבנה. אם אי פעם השתמשת ב- Yahoo Pipes, תזהה את הממשק.

עכשיו, אחד הדברים המגניבים ב- Storyline הוא שזה מקל למדי לגרום לאלקסה לדבר על התוצאות של כל שאילתת JSON. להוציא נתונים מהגיליון האלקטרוני של Google קל עם שאילתות JSON. הכנסת ציוצים לגיליון אלקטרוני של גוגל עם אם זה יותר קל. קַל. קַל. קַל.

אני מוצא שהכי טוב לדמיין את כל המיומנות שלך במופשט לפני שתתחיל.

כשחשבתי על המיומנות שלי, ידעתי שמטרתה העיקרית היא רק להעביר את הציוץ האחרון. אבל אני יכול לשפר את זה עם קצת עיצוב סאונד (Storyline מאפשר למיומנות שלך לנגן כל MP3), וציוץ אחד לא יכול להספיק לאנשים טעם של החשבון - אני יכול לאחסן כמה מהציוצים הישנים יותר ולתת המשתמש שומע אחד מאלה לאחר האחרונה. אז סקיצת זרימת המיומנות שלי עשויה להיראות כך:

  1. קבל את פני המשתמש עם מעט טקסט מדובר וצליל היכרות מתאים
  2. קראו את הציוץ האחרון
  3. השמע צליל חתימה
  4. שאל את המשתמש אם הוא מעוניין לשמוע ציוץ ישן יותר

    1. כן? קרא ציוץ ישן יותר.
    2. השמע את צליל החתימה
    3. לא? צא מהמיומנות.

המקור של "הציוץ האחרון" הוא גיליון אלקטרוני של Google, המוזן על ידי תסריט אם זה אז זה. תהליך זה נראה כך:

  1. אם יש ציוץ חדש מחשבון @TweetOfGod, הוא יועתק לתוך הגיליון האלקטרוני
  2. אם הציוץ מכיל קישור או תמונה, הגיליון האלקטרוני מסנן אותו
  3. אם הציוץ הוא ציוץ חוזר, הגיליון האלקטרוני מסנן אותו
  4. הציוצים שעוברים על שני המסננים האלה מעובדים לקריאה: # מוחלפת במילה "האשטאג" וכמה תווים אחרים מוחלפים במקבילים קריאים.
  5. הציוץ האחרון מועתק לתא "הציוץ האחרון" שאותו אלכס קורא

שלב 2: שלב 2: צור בלוק קבלת פנים נחמד עם צליל היכרות

שלב 2: צור בלוק קבלת פנים נחמד עם צליל היכרות
שלב 2: צור בלוק קבלת פנים נחמד עם צליל היכרות
שלב 2: צור בלוק קבלת פנים נחמד עם צליל היכרות
שלב 2: צור בלוק קבלת פנים נחמד עם צליל היכרות
שלב 2: צור בלוק קבלת פנים נחמד עם צליל היכרות
שלב 2: צור בלוק קבלת פנים נחמד עם צליל היכרות

לפני שאלכסה קוראת את הציוץ האחרון, אני יוצר באקראי אחד מארבעה צלילים שמימיים הומוריסטיים. אלה הם קבצי MP3 שעובדו עבור Alexa על ידי storyline. מצאתי את קובצי ה- MP3 שלי ב- Freesound (והכל שם באמת בחינם, אבל תהיה בן אדם הגון והשאיר טיפ).

  1. הורד את ה- MP3 שלך. זה צריך להיות פחות מ -90 שניות. Alexa מתייחסת במיוחד לפורמט. אם אתה יודע שזו גרסת MPEG 2 ו- 48kps, תוכל לדלג על השלב הבא. אבל אם אתה לא יודע או שזה משהו אחר, זה קל להמיר.
  2. העלה אותו ל- Storyline לעיבוד בממיר האודיו שלהם
  3. אירח את האודיו שהורדת בשרת

אם שלב 3 האם אתה עושה "עשה מה עכשיו?" כנראה שאין לך גישה לשרת https שבו תוכל לארח את הקבצים שלך. אל תדאג, אתה יכול לעשות זאת באמצעות dropbox. תזדקק לחשבון, אך שוב, בחינם זה בסדר. להלן השלבים:

  1. עבור אל https://www.dropbox.com/h והיכנס לחשבונך.
  2. לחץ על כפתור העלאת קבצים
  3. בחר את קובץ ה- mp3 שהמרת.
  4. לחץ על שתף
  5. לחץ על צור קישור והעתק את הקישור
  6. בקישור שהעתקת, החלף את "dropbox" ב- "dl.dropboxusercontent" ללא הציטוטים
  7. העתק את כתובת האתר הזו

כעת אתה עובר לתחתית בלוק הפתיחה שלך ולחץ על סמל התו המוסיקלי.

הדבק את כתובת האתר שלך. אם ברצונך להוסיף וריאציות אקראיות, חזור על התהליך לעוד מספר MP3 ולחץ על תפריט ההמבורגר שמתחת לתיבת הדבקת כתובות האתרים.

שלב 3: שלב 3: הגדר IFTTT

שלב 3: הגדר את IFTTT
שלב 3: הגדר את IFTTT
  1. עבור אל חשבון IFTTT שלך ובחר "צור יישומון חדש"
  2. בחר TWITTER כשירות IF.
  3. בחר "ציוץ חדש על ידי משתמש ספציפי בתור הטריגר. מלא את שם החשבון שברצונך לעקוב אחריו
  4. בחר "Google Sheets" כשירות THEN
  5. בחר "הוסף שורה לגיליון אלקטרוני"
  6. בשדה "שורה מעוצבת", הסר הכל למעט השדה {{TEXT}}.
  7. צור את המיומנות שלך.

זה יוצר גיליון אלקטרוני חדש ומוסיף שורה בכל פעם שציוץ חדש יוצא. ייתכן שתעדיף להשתמש בתא בודד בגיליון האלקטרוני שלך ופשוט להחליף את תוכנו בכל פעם. במקרה זה, בשלב 5 תוכל לבחור באפשרות לכתוב לתא בודד. אני אוהב לרשום את הציוצים, מכיוון שאני מעביר מדי פעם את אלה שאינם אקטואליים או מגיבים לחדשות לגיליון אלקטרוני "ציוצים ישנים". שים לב שאם תבחר באפשרות זו, יהיה עליך לבצע מעט תחזוקה בגיליון שלך: אחת חדשה תיווצר לאחר 2000 שורות.

שלב 4: שלב 4: הגדר את גיליון Google שלך

שלב 4: הגדר את גיליון Google שלך
שלב 4: הגדר את גיליון Google שלך
שלב 4: הגדר את גיליון Google שלך
שלב 4: הגדר את גיליון Google שלך
שלב 4: הגדר את גיליון Google שלך
שלב 4: הגדר את גיליון Google שלך

גיליון Google זה הוא לב המיומנות הספציפית הזו, מכיוון שהוא מסנן ציוצים שאינם פועלים ממש טוב עם אלקסה (ציוצים המתייחסים לתמונות, למשל, או ציוצים עם קישורים) וזה הופך ציוצים בטקסט בלבד להרבה יותר אלקסה -ידידותי עם כמה תחליפים פשוטים.

תן ל- IFTT ליצור את הגיליון האלקטרוני שלך עם כמה ערכים - אז המתן לכמה ציוצים מהחשבון שהמעקב שלך ינחת שם, פתח את Google Sheets ומיין לפי הזמן שנוצר. תראה את הגיליון האלקטרוני החדש והמבריק שלך למעלה. כעת, כל ציוץ חדש יהיה בשורה חדשה, לכן אנו רוצים ליצור נוסחה שתסנן את הציוצים המכילים קישורים או תמונות ותרוץ כדי למצוא את האחרון בעמודה.

אתה יכול פשוט לשכפל עותק זה של הגיליון האלקטרוני שלי או שאתה יכול לבנות משלך בשלבים הבאים:

  1. שנה את שם הכרטיסייה עם ציוצים בה "Live from IFTTT"
  2. הוסף כרטיסייה בשם "עיבוד ציוצים" לגיליון האלקטרוני
  3. הוסף נוסחה זו לתא A8 של הכרטיסייה עיבוד ציוצים:

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

זה מושך את כל הציוצים שאין להם קישור אל עמודה A של כרטיסיית העיבוד שלך.

כעת עלינו למצוא את הציוץ האחרון בטור הזה. הדבק את הנוסחה הבאה בתא B7 של כרטיסיית העיבוד:

= INDEX (פילטר (A: A, NOT (ISBLANK (A: A)))), ROWS (FILTER (A: A, NOT (ISBLANK (A: A))))))

כעת אנו רוצים לבצע מספר החלפות כדי להקל על קריאת הציוץ של אלקסה. כל אלה יכולים למעשה להיות נוסחה אחת בתא בודד, אך פירקתי אותם לשם הבהרה:

בהדבקת תא B6 בכרטיסיה עיבוד:

= trim (מקום רגיל (B7, "#", "Hashtag"))

זה מסתכל על תוכן התא למטה ומחליף את סימן # במילה "האשטאג"

בתא B5 הדבק את האיטרציה הבאה:

= trim (מקום רגיל (B6, "@", "at"))

קלטת את הרעיון.

בתוך הדבק תא B4:

= trim (מקום רגיל (B6, "&", "ו-"))

בתא B3:

= trim (מקום רגיל (B6, "%", "percent"))

בתא B2 אנו הולכים למקם נוסחה קצת יותר מסובכת:

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

זה פשוט נפטר מכל דבר שהוא לא מספר, אות או אחת מנקודות הפיסוק שאלכסה מבינה.

בתא B1 אנחנו פשוט הולכים להעתיק את הציוץ האחרון:

= אינדקס (B2)

זה הטקסט הסופי ואתה יכול לתכנת את העלילה כדי לתפוס את התא הזה אם אתה יודע קצת JSON, אבל כדי להפוך את הדברים לקצת יותר פשוטים בסיפור העלילה, אני אוהב להעתיק את התוכן לכרטיסייה "Live from IFTTT" על ידי כך הנוסחה ב- A2 בכרטיסייה "Live from IFTTT":

= 'מרכז עיבוד'! B1

קִצבִּי. כעת הגיליון האלקטרוני שלך מוגדר ומוכן לקריאה על ידי שאילתת JSON של Storyline.

שלב 5: שלב 5: הגדר את שאילתת JSON ה"ציוץ האחרון "שלך ב- Storyline

שלב 5: הגדר את שלך
שלב 5: הגדר את שלך
שלב 5: הגדר את שלך
שלב 5: הגדר את שלך
שלב 5: הגדר את שלך
שלב 5: הגדר את שלך
  1. עבור אל בלוק הפתיחה של מיומנות הסיפור שלך והוסף שלב "מה אלקסה אומרת".
  2. הוסף משפט מבוא כמו "הנה הציוץ האחרון מ- TheTweetOfGod:"
  3. השתמש בתפריט המבורגר כדי להוסיף וריאציות
  4. לחץ על החץ ימינה הקטנה ובחר "צור בלוק חדש"

קראתי לבלוק החדש שלי "Get God Tweet" המשימה כאן היא להביא את הציוץ האחרון והמסונן מהתא A2 של הכרטיסייה הראשית. אתה עושה זאת על ידי אחזור הנתונים עם בקשת JSON שנמסרה באמצעות ממשק ה- API של Google Sheets: זה ממש לא יותר מכתובת URL מפוארת.

  1. לחץ על הסמל הקטן הימני ביותר בבלוק החדש שלך כדי להוסיף בקשת JSON.
  2. תן שם לבקשת ה- API שלך. קראתי לשלי "GetGodTweet"
  3. מצא את כתובת האתר של הגיליון האלקטרוני שלך על ידי כך:

    1. לחץ על קובץ -> פרסם באינטרנט בגיליון האלקטרוני שלך.
    2. השתמש בערכי ברירת המחדל ופשוט לחץ על "פרסם"
    3. העתק את כתובת האתר והדבק אותה בקובץ פתקים.

הדוגמה שלי היא:

"https://docs.google.com/spreadsheets/d/e/2PACX-1vSUnz43PEORZbBES1lQ8ZlJjH_4voh4Guc6SWrfjeGk2bZlY5EBYzLD5-fT633ygo_35Jz97cuUwKuy/pubhtml" תצטרך. זה הקטע בין ה- /d /e לבין ה- /charter הבא. אז במקרה הזה:

2PACX-1vSUnz43PEORZbBES1lQ8ZlJjH_4voh4Guc6SWrfjeGk2bZlY5EBYzLD5-fT633ygo_35Jz97cuUwKuy

אתה מחליף את המספר הארוך הזה לביט בכתובת האתר הבאה שאומרת "SPREASHEET_ID":

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

  1. כעת קח את כתובת האתר הזו והדבק אותה בתיבת כתובת ה- URL של שאילתת JSON ב- Storyline.
  2. בחר באפשרות "קבל"
  3. השאר את התיבה "כותרות" ריקה
  4. בתיבה הבאה, אתה יוצר משתנה עם תוכן תא A2 בכרטיסייה הראשונה שלך על ידי הדבקת נוסחה זו ב:

ציוץ = api_response.feed.entry.0.title. $ t

המשתנה נקרא "ציוץ". זה מעתיק את התוכן מהכרטיסייה הראשית 0.

עכשיו אם תוסיף בלוק "Alexa Says" מתחת לשאילתת JSON שלך ותשים רק את המילה {{ציוץ}} בסוגריים מתולתלים, Alexa תגיד את תוכן התא. וודא שהמקרה תואם את המשתנה שציינת בשלב 4 !!!

לחץ על כפתור PLAY ב- Storyline ובדוק את המיומנות שלך! אם אתה מקבל את המילה "Null" פירוש הדבר שמשהו השתבש בבקשת ה- API שלך.

זהו באמת המיומנות הבסיסית. הוספתי חתימת שמע קטנה ומצחיקה עם עוד MP3 ושאלתי אם המשתמש רוצה לשמוע ציוץ ישן יותר. השלב הבא מראה לך טריק נחמד ליצירת ציוץ ישן יותר אקראי, אבל זה מיושן למי שרוצה להביא את המיומנות שלו לשימושיות נוספת.

שלב 6: תוספת אופציונלית: יצירת תוצאה אקראית מגליונות Google לקריאת Alexa

תוספת אופציונלית: יצירת תוצאה אקראית מגליונות Google ש- Alexa תקרא
תוספת אופציונלית: יצירת תוצאה אקראית מגליונות Google ש- Alexa תקרא

אם אתה רוצה ליצור אקראי אחד מתוך סדרת ציוצים ישנים יותר, הנה טריק מגניב.

יצרתי כרטיסייה שלישית בגיליון האלקטרוני שלי בשם "ציוצים ישנים". כל אלה תופסים תאים A1-A36 בגיליון האלקטרוני שלי

  1. ב- Storyline, צור בלוק חדש בשם "Oldertweets"
  2. הוסף שלב JSON Query
  3. תן לזה שם
  4. בתיבת כתובת האתר, השתמש באותה כתובת URL שבנית עם מזהה הגיליון האלקטרוני שלך בשלב הציוץ האחרון, עם וריאציה אחת:

    שנה את הקצה לקראת הסוף שאומר/od6/basic/public ל-/3/basic/public - זה קורא TAB 3 במקום Tab 1

  5. בחר "קבל"
  6. השאר כותרות ריקות
  7. בתיבה הבאה, הדבק את זה:

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

יצרת משתנה חדש בשם "oldtweet" והמילה הקטנה "אקראית" פירושה שהמשתנה ישתנה בכל פעם שתתקשר לשאילתת JSON.

הוסף עוד שלב "אומר Alexa" והוסף את המשתנה החדש שלך, {{oldtweet}} עם הסוגריים המתולתלים האלה. בּוּם! טוב אקראי!

אם נהנית מהמדריך הזה, אנא תן למיומנות שלי כמה כוכבים או סקירה!

מוּמלָץ: