İçindekiler:

Alexa Becerisi: En Son Tweeti Okuyun (Bu Durumda, Tanrı'nın): 6 Adım
Alexa Becerisi: En Son Tweeti Okuyun (Bu Durumda, Tanrı'nın): 6 Adım

Video: Alexa Becerisi: En Son Tweeti Okuyun (Bu Durumda, Tanrı'nın): 6 Adım

Video: Alexa Becerisi: En Son Tweeti Okuyun (Bu Durumda, Tanrı'nın): 6 Adım
Video: Her Şeyi Açıklıyorum..! 2024, Mayıs
Anonim
Alexa Skill: En Son Tweeti Okuyun (Bu durumda, Tanrı'nın)
Alexa Skill: En Son Tweeti Okuyun (Bu durumda, Tanrı'nın)

"Tanrı'nın En Son Tweetini" okumak için bir Alexa Becerisi yaptım -- yani içerik, eski bir Daily Show komedi yazarı tarafından oluşturulan 5 milyondan fazla abone hesabı olan @TweetOfGod'dan. IFTTT (Eğer Bu O Zaman Oysa), bir Google E-Tablosu ve inanılmaz derecede kullanımı kolay Alexa Skill Builder, Storyline'ı kullanır.

Nihai sonuç hakkında bir fikir edinmek için, yeteneği buradan Alexa Cihazınıza ekleyebilir veya Alexa hesabınız ABD'de değilse veya bir Alexa cihazınız yoksa, Beceriyi Storyline'da önizleyebilirsiniz.

Tweetleri okuyan bir Alexa becerisi geliştirmek istiyorsanız, bunu yapmanın nispeten kolay yolu budur. Yalnızca benim şablonlarımı kullanırsanız kodlama gerekmez, ancak yoldan çıkmak istiyorsanız genel olarak kod ve özellikle JSON çağrılarının nasıl yapılandırıldığı hakkında biraz bilgi sahibi olmanıza yardımcı olur. Ancak bu beceriyi farklı bir Twitter hesabı için kopyalıyorsanız, kes ve yapıştırın ötesinde teknik beceriler gerektirmeyecektir.

Neye ihtiyacınız olacak:

  • Bir Alexa Cihazı (veya Echoism.io ile bir hesap - harika bir Alexa sanal simülatörü)
  • Bir Alexa Geliştirici hesabı
  • Bir e-tablo oluşturmak için bir google hesabı
  • Storyline'lı bir hesap
  • If This Then That (IFTTT) ile bir hesap
  • Bir dropbox hesabı veya mp3 dosyalarını güvenli bir sunucuda barındırabileceğiniz bir yer

Bu hesapların tamamı ücretsizdir.

Bir Storyline becerisinin nasıl oluşturulacağının temelleri hakkında çok fazla ayrıntıya girmeyeceğim - sitede blok oluşturmayı, bunları bağlamayı ve koşullar arasında dallanmayı öğrenmek için mükemmel öğreticiler var. Bu eğitim, bu beceriyi geliştirirken öğrendiğim üç şeye odaklanacak: becerinize bir MP3 ses efekti eklemek, twitter içeriğini IFTTT ve Google E-Tablolar aracılığıyla bağlamak ve önceden oluşturulmuş bir dizi seçenekten rastgele bir tweet'i nasıl oluşturacağınız.

(Alexa'ya entegre twitter alma konusundaki mükemmel öğreticisi beni başlatan Alexa Skill Developer George Collier'e büyük bir haykırış.)

Adım 1: Adım 1: Becerinizin Genel Akışını Düşünün

Adım 1: Becerinizin Genel Akışını Düşünün
Adım 1: Becerinizin Genel Akışını Düşünün

Storyline, çok az veya hiç kodlama olmadan Alexa becerileri oluşturmanın harika bir yoludur. Blokları yerlerine sürükleyip bırakabilir ve anlaşılması kolay bir grafik arabirim aracılığıyla eylemler arasında bağlantılar ve yollar oluşturabilirsiniz. Yahoo Pipes kullandıysanız, arayüzü tanıyacaksınız.

Şimdi, Storyline ile ilgili harika şeylerden biri, Alexa'nın herhangi bir JSON sorgusunun sonuçlarını söylemesini oldukça kolaylaştırmasıdır. JSON sorgularıyla bir Google E-Tablodan veri almak kolaydır. If This Than That is ile bir google e-tablosuna tweet almak çok kolay. Kolay. Kolay. Kolay.

Başlamadan önce tüm becerinizi soyut olarak görselleştirmenin en iyisi olduğunu düşünüyorum.

Yeteneğimi düşündüğümde, birincil amacının sadece en son tweet'i göndermek olduğunu biliyordum. Ama bunu biraz sağlam tasarımla geliştirebilirim (Hikaye çizgisi, yeteneğinizin herhangi bir MP3'ü çalmanıza izin verir) ve bir tweet, insanlara hesabın tadına varmak için yeterli olmayabilir - bazı eski tweetleri stoklayabilir ve izin verebilirim. kullanıcı en geç bunlardan birini duyar. Yani beceri akışı çizimim şöyle görünebilir:

  1. Kullanıcıyı biraz sözlü metin ve uygun bir giriş sesiyle karşılayın
  2. En son tweeti oku
  3. İmza sesi çal
  4. Kullanıcıya daha eski bir tweet duymak isteyip istemediklerini sorun

    1. Evet? Daha eski bir tweet okuyun.
    2. İmza sesini çal
    3. Numara? Beceriden çıkın.

"Son Tweet"in kaynağı, If This Then That komut dosyası tarafından beslenen bir google elektronik tablosudur. Bu süreç şuna benziyor:

  1. @TweetOfGod hesabından yeni bir tweet varsa, elektronik tabloya kopyalanır
  2. Tweet bir bağlantı veya resim içeriyorsa, elektronik tablo bunu filtreler.
  3. Tweet bir retweetse, elektronik tablo onu filtreler
  4. Bu iki filtreden geçen Tweetler daha sonra okunmak üzere işlenir: #, "Hashtag" kelimesi ile değiştirilir ve diğer birkaç karakter, okunabilir eşdeğerleriyle değiştirilir.
  5. Son tweet, Alex'in okuduğu "en son tweet" hücresine kopyalanır.

2. Adım: 2. Adım: Giriş Sesi ile Güzel Bir Hoş Geldiniz Bloğu Oluşturun

2. Adım: Giriş Sesi ile Güzel Bir Hoş Geldiniz Bloğu Oluşturun
2. Adım: Giriş Sesi ile Güzel Bir Hoş Geldiniz Bloğu Oluşturun
2. Adım: Giriş Sesi ile Güzel Bir Hoş Geldiniz Bloğu Oluşturun
2. Adım: Giriş Sesi ile Güzel Bir Hoş Geldiniz Bloğu Oluşturun
2. Adım: Giriş Sesi ile Güzel Bir Hoş Geldiniz Bloğu Oluşturun
2. Adım: Giriş Sesi ile Güzel Bir Hoş Geldiniz Bloğu Oluşturun

Alexa en son tweeti okumadan önce rastgele dört mizahi göksel sesten birini oluşturuyorum. Bunlar, hikayeye göre Alexa için işlenmiş MP3'lerdir. MP3'lerimi Freesound'da buldum (Ve oradaki her şey gerçekten bedava, ama düzgün bir insan ol ve bir bahşiş bırak).

  1. MP3'ünüzü indirin. 90 Saniyeden az olması gerekir. Alexa format konusunda özeldir. Bunun MPEG Sürüm 2 ve 48kps olduğunu biliyorsanız, bir sonraki adımı atlayabilirsiniz. Ama bilmiyorsanız veya farklı bir şey varsa, dönüştürmek kolaydır.
  2. Ses Dönüştürücülerinde işlenmek üzere Storyline'a yükleyin
  3. İndirdiğiniz sesi bir HTTPS sunucusunda barındırın

3. adım "ŞİMDİ YAPIN?" muhtemelen dosyalarınızı barındırabileceğiniz bir https sunucusuna erişiminiz yok. Endişelenme, bunu dropbox ile yapabilirsin. Bir hesaba ihtiyacınız olacak, ancak yine de ücretsiz bir hesap sorun değil. İşte adımlar:

  1. https://www.dropbox.com/h adresine gidin ve hesabınıza giriş yapın.
  2. Dosyaları yükle düğmesini tıklayın
  3. Dönüştürdüğünüz mp3 dosyasını seçin.
  4. Paylaş'ı tıklayın
  5. Bağlantı oluştur'u tıklayın ve Bağlantıyı kopyalayın
  6. Kopyaladığınız bağlantıda, "dropbox"ı tırnak işaretleri olmadan "dl.dropboxusercontent" ile değiştirin.
  7. Bu URL'yi kopyala

Şimdi hoş geldiniz bloğunuzun en altına gidecek ve Müzik notası simgesini tıklayacaksınız.

URL'nizi yapıştırın. Rastgele varyasyonlar eklemek istiyorsanız, birkaç MP3 için işlemi tekrarlayın ve URL yapıştırma kutusunun altındaki Hamburger menüsünü tıklayın.

Adım 3: Adım 3: IFTTT'yi Ayarlayın

3. Adım: IFTTT'yi Ayarlayın
3. Adım: IFTTT'yi Ayarlayın
  1. IFTTT hesabınıza gidin ve "Yeni bir uygulama oluştur" u seçin
  2. IF Hizmeti olarak TWITTER'ı seçin.
  3. Tetikleyici olarak "Belirli bir kullanıcı tarafından yeni tweet'i seçin. Takip etmek istediğiniz hesabın adını girin.
  4. THEN hizmeti olarak "Google E-Tablolar"ı seçin
  5. "E-tabloya Satır Ekle" yi seçin
  6. "Biçimlendirilmiş Satır" Alanında, {{METİN}} alanı dışındaki her şeyi kaldırın.
  7. Becerinizi yaratın.

Bu, yeni bir elektronik tablo oluşturur ve her yeni tweet çıktığında bir satır ekler. Elektronik tablonuzda tek bir hücre kullanmayı ve her seferinde içeriğinin üzerine yazmayı tercih edebilirsiniz. Bu durumda, 5. adımda tek bir hücreye yazma seçeneğini belirleyebilirsiniz. Güncel olmayan veya haberlere tepki vermeyenleri periyodik olarak bir "Eski Tweetler" elektronik tablosuna taşıdığım için tweet'lerin kaydını tutmayı seviyorum. Bu seçeneği seçerseniz, sayfanızda biraz bakım yapmanız gerekeceğini unutmayın: 2000 satırdan sonra yeni bir tane oluşturulacaktır.

4. Adım: 4. Adım: Google Sayfanızı Kurun

4. Adım: Google Sayfanızı Kurun
4. Adım: Google Sayfanızı Kurun
4. Adım: Google Sayfanızı Kurun
4. Adım: Google Sayfanızı Kurun
4. Adım: Google Sayfanızı Kurun
4. Adım: Google Sayfanızı Kurun

Bu Google E-Tablosu, bu özel becerinin kalbidir, çünkü Alexa ile gerçekten iyi çalışmayan tweetleri (örneğin resimlere atıfta bulunan tweetler veya bağlantı içeren tweetler) filtreler ve salt metin tweetlerini çok daha fazla Alexa yapar -birkaç basit değişiklikle dost.

IFTT'nin birkaç girişle e-tablonuzu oluşturmasına izin verin - bu nedenle, takip ettiğiniz hesaptan birkaç tweet'in oraya inmesini bekleyin, Google E-Tablolar'ı açın ve oluşturulan zamana göre sıralayın. Parlak yeni e-tablonuzu en üstte göreceksiniz. Şimdi, her yeni tweet yeni bir satırda olacak, bu yüzden bağlantı veya resim içeren tweetleri filtreleyecek ve sütundaki sonuncuyu bulmak için çalışacak bir formül oluşturmak istiyoruz.

E-tablomun bu kopyasını kopyalayabilir veya aşağıdaki adımlarla kendinizinkini oluşturabilirsiniz:

  1. İçinde tweet bulunan sekmeyi "IFTTT'den Canlı" olarak yeniden adlandırın
  2. E-tabloya "Tweet İşleniyor" adlı bir Sekme ekleyin
  3. Bu formülü Tweetleri İşleme sekmesinin A8 hücresine ekleyin:

=QUERY('IFTTT'den Canlı'!A3:A2000, "A'nın 'https' içermediği durumlarda A'yı seçin ")

Bu, bağlantısı olmayan tüm tweet'leri işleme sekmenizin A Sütununa çeker.

Şimdi o sütundaki son tweeti bulmamız gerekiyor. Aşağıdaki formülü işleme sekmesinin B7 hücresine yapıştırın:

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

Şimdi tweet'i Alexa'nın okumasını kolaylaştırmak için birkaç değişiklik yapmak istiyoruz. Bunların hepsi aslında tek bir hücre formülünde olabilir, ancak netlik için onları ayırdım:

İşleme sekmesinin Hücre B6 yapıştırmasında:

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

Bu, aşağıdaki hücrenin içeriğine bakar ve # işaretini "Hashtag" kelimesiyle değiştirir.

B5 hücresine bir sonraki yinelemeyi yapıştırın:

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

Kaptın bu işi.

Hücre B4 yapıştırında:

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

B3 Hücresinde:

=kırp(regexreplace(B6, "%", "yüzde "))

B2 hücresine biraz daha karmaşık bir formül koyacağız:

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

Bu, Alexa'nın anladığı bir sayı, harf veya noktalama işaretlerinden biri olmayan HERHANGİ BİR ŞEY'den kurtulur.

B1 hücresinde son tweeti kopyalayacağız:

=dizin(B2)

Bu son metindir ve biraz JSON biliyorsanız, o hücreyi yakalamak için hikayeyi programlayabilirsiniz, ancak hikayenin sonunda işleri biraz daha basitleştirmek için, şunu koyarak içeriği "IFTTT'den Canlı" sekmesine kopyalamayı seviyorum. "IFTTT'den Canlı" sekmesindeki A2'deki formül:

='İşleme Merkezi'!B1

Harika. Artık e-tablonuz ayarlandı ve Storyline JSON sorgusu tarafından okunmaya hazır.

Adım 5: Adım 5: Storyline'da "Son Tweet" JSON Sorgunuzu Ayarlayın

Adım 5: Bilgisayarınızı Kurun
Adım 5: Bilgisayarınızı Kurun
Adım 5: Bilgisayarınızı Kurun
Adım 5: Bilgisayarınızı Kurun
Adım 5: Bilgisayarınızı Kurun
Adım 5: Bilgisayarınızı Kurun
  1. Hikaye yeteneğinizin karşılama bloğuna gidin ve bir "Alexa Ne Diyor" adımı ekleyin.
  2. "İşte TheTweetOfGod'dan en son tweet:" gibi bir giriş cümlesi ekleyin.
  3. Varyasyon eklemek için Hamburger Menüsünü kullanın
  4. Sağdaki küçük oka tıklayın ve "Yeni Blok Oluştur" u seçin

Yeni bloğumu "Tanrı Tweeti Al" olarak adlandırdım. Buradaki görev, birincil sekmenin A2 elektronik tablosu hücresinden en son, filtrelenmiş tweet'i almak. Bunu, Google E-Tablolar API'si aracılığıyla gönderilen bir JSON isteğiyle verileri getirerek yaparsınız: Bu gerçekten süslü bir URL'den başka bir şey değildir.

  1. Bir JSON isteği eklemek için yeni bloğunuzun en sağındaki küçük simgeye tıklayın.
  2. API isteğinize bir ad verin. Benimkine "GetGodTweet" adını verdim
  3. Bunu yaparak e-tablonuzun URL'sini bulun:

    1. E-tablonuzda Dosya -> Web'de Yayınla'yı tıklayın.
    2. Varsayılan değerleri kullanın ve "Yayınla"yı tıklayın
    3. URL'yi kopyalayın ve bir not dosyasına yapıştırın.

Benim örneğim:

"https://docs.google.com/spreadsheets/d/e/2PACX-1vSUnz43PEORZbBES1lQ8ZlJjH_4voh4Guc6SWrfjeGk2bZlY5EBYzLD5-fT633ygo_35Jz97cuUwKuy/pubhtml" belgenizin ID'sini bu uzunlukta bir şekilde ayıklamanız gerekecek. /d/e ve sonraki / karakter arasındaki bittir. Yani bu durumda:

2PACX-1vSUNz43PEORZbBES1lQ8ZlJjH_4voh4Guc6SWrfjeGk2bZlY5EBYzLD5-fT633ygo_35Jz97cuUwKuy

Bu uzun sayıyı, "SPREASHEET_ID" yazan aşağıdaki url'deki bit ile değiştirirsiniz:

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

  1. Şimdi BU url'yi alın ve Storyline'daki JSON Sorgusunun URL kutusuna yapıştırın.
  2. "GET" seçeneğini seçin
  3. "Başlıklar" Kutusunu boş bırakın
  4. Sonraki kutuda, bu formülü yapıştırarak ilk sekmenizin Hücre A2 içeriğiyle bir değişken oluşturacaksınız:

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

Değişken "tweet" olarak adlandırılır. İçeriği birincil sekme 0'dan kopyalıyor.

Şimdi, JSON sorgunuzun altına bir "Alexa Says" bloğu eklerseniz ve yalnızca {{tweet}} kelimesini süslü parantezler içine koyarsanız, Alexa hücrenin içeriğini söyleyecektir. Büyük/küçük harfin 4. adımda adlandırdığınız değişkenle eşleştiğinden emin olun!!!

Storyline'da OYNAT düğmesine basın ve becerinizi test edin! "Boş" kelimesini alırsanız, API isteğinizde bir şeyler ters gitti demektir.

Temel beceri için gerçekten bu kadar. Başka bir MP3 ile komik küçük bir ses imzası ekledim ve kullanıcının daha eski bir tweet duymak isteyip istemediğini sordum. Bir sonraki adım size rastgele eski bir tweet oluşturmak için güzel bir numara gösteriyor, ancak becerilerini biraz daha fazla kullanılabilirlik getirmek isteyenler için buzlanma.

6. Adım: İsteğe Bağlı Ekstra: Alexa'nın Okuması için Google E-Tablolardan Rastgele Bir Sonuç Oluşturma

İsteğe Bağlı Ekstra: Alexa'nın Okuması için Google E-Tablolardan Rastgele Bir Sonuç Oluşturma
İsteğe Bağlı Ekstra: Alexa'nın Okuması için Google E-Tablolardan Rastgele Bir Sonuç Oluşturma

Rastgele bir dizi eski tweet'ten birini oluşturmak istiyorsanız, işte size şık bir numara.

E-tablomda "Eski Tweetler" adında üçüncü bir sekme oluşturdum. Bunların hepsi e-tablomda A1-A36 hücrelerini işgal ediyor

  1. Storyline'da "Oldertweets" adında yeni bir blok oluşturun
  2. JSON Sorgu adımı ekleyin
  3. Bir isim ver
  4. URL kutusunda, En Son Tweet adımında Elektronik Tablo Kimliğinizle oluşturduğunuz API URL'sinin aynısını bir varyasyonla kullanın:

    /od6/basic/public yazan biti /3/basic/public olarak değiştirin - bu, Sekme 1 yerine TAB 3'ü çağırır

  5. "AL" ı seçin
  6. Başlıkları boş bırakın
  7. Bir sonraki kutuya şunu yapıştırın:

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

"oldtweet" adında yeni bir değişken yarattınız ve bu küçük "rastgele" kelime, JSON sorgusu her çağrıldığında değişkenin değişeceği anlamına gelir.

Başka bir "Alexa Says" adımı ekleyin ve yeni değişkeninizi {{oldtweet}} bu küme parantezleriyle ekleyin. Boom! Rastgele iyilik!

Bu Eğitilebilir Yazıyı beğendiyseniz, lütfen yeteneğime birkaç yıldız verin veya bir inceleme yapın!

Önerilen: