Actions Builder ile Google Asistan'a Action Geliştirme (1. Seviye)
Giriş
Google Assistant üzerinde kendi sesli uygulamalarınızı, yani Action'larınızı, yapmak ve bunları yayına almak konusunda hiç tecrübeniz olmasa bile bu atölye çalışmasını tamamlayarak platformun temel çalışma mantığını kavrayabilir, konsola aşina olabilir ve öğrendiklerinizi kendi sesli uygulamalarınızı geliştirmek için kullanabilirsiniz.
Bu çalışma, Google Assistant Developer Relations tarafından yazılan Build Actions for Google Assistant using Actions Builder (Level 1) isimli codelab'in çevirisidir.
Geliştirecekleriniz
Bu çalışmanın sonunda:
- Uygulamanıza gelen kullanıcılara için hoşgeldin mesajı oluşturmayı,
- Kullanıcılara sorular sormayı,
- Kullanıcının verdiği cevaba göre uygulamanızın vereceği cevabı özelleştirmeyi,
- Kullanıcının sorunuza hızlıca yanıt verebilmeleri için öneri butonları koymayı,
- Kullanıcı uygulamanızı ilk kez kullanmıyorsa, uygulamanın karşılama mesajını özelleştirmeyi
öğreneceksiniz.
Bu çalışmayı bitirdiğinizde, geliştirdiğiniz Action aşağıdaki gibi çalışacak
Öğrenecekleriniz
Bu çalışmanın sonunda:
- Actions konsolda proje oluşturmayı
- Kullanıcı uygulamanıza geldiğinde onu karşılamayı
- Kullanıcının söylediklerini anlamayı ve cevaplamayı
- Uygulamanızı Actions Simulator'de test etmeyi
- Uygulamanızın fulfillment'ını (mantığını) Cloud Functions kullanarak geliştirmeyi
öğreneceksiniz.
Gerekenler
- Bir web tarayıcı
Kurulum
Geliştirmeye başlamadan önce bir Actions on Google projesi oluşturmamız ve geliştirmeye hazır hale getirmemiz gerekiyor.
Google etkinlik ayarlarınızı kontrol edin
Çalışmanın devamında geliştirdiğiniz uygulamayı Actions Simulator üzerinde test edebilmek için gerekli bazı izinleri vermeniz gerekiyor. Bu izinleri açmak için:
- Google Etkinlik Kontrolleri sayfasına gidin
- Zaten hesabınıza giriş yapmadıysanız, giriş yapın
- Web ve Uygulama Etkinliği (Web & App Activity) iznini aktif hale getirin ve "Chrome geçmişini ve Google hizmetlerini kullanan site, uygulama ve cihazlardaki etkinlikleri ekle" (Include Chrome history and activity from sites, apps, and devices that use Google services.) seçeneğini işaretleyin.
Bir Actions projesi oluşturun
Action projenizi, Action'ınızı da içinde barındıran bir paket olarak düşünebilirsiniz. Bu Action'a bağlı başka Google Cloud hizmetleri kullanmanız halinde bunları da aynı proje içerisinde barındırabilir ve yönetimi, kolaylaştırabilirsiniz.
- Actions konsolu açın
- New Project'e tıklayın
- Projenize bir isim verin, bu isim uygulamanızın kullanıcılar tarafından görülen ismi değil. Bu yüzden sizin tarafınızdan anlaşılabilir olması yeterli
Projenizi isimlendirme - Create Project'e tıklayın
- What kind of Action do you want to build? yani Ne tür bir Action geliştirmek istiyorsunuz? diye sorulduğunda Custom yani özel seçeneğini seçin
- Next'e basın
- Herhangi bir template kullanmayacağımız için Blank project yazan kartı seçin
- Geliştirmeye başlamak için Start Building'e basın.
Bir faturalandırma hesabı bağlayın
Çalışmanın son aşamasında fulfillment'ımızı Google Cloud Functions üzerinde geliştireceğimiz için, yeni oluşturduğumuz Actions on Google projesine bir faturalandırma hesabı bağlamamız gerekiyor. Eğer projenize bir faturalandırma hesabı zaten bağlı ise diğer adıma geçebilirsiniz.
Projenize bir faturalandırma hesabı eklemek için:
- Google Cloud Console faturalandırma sayfasına gidin
- Faturalandırma hesabı ekle (Add billing account) butonuna tıklayın
- Ödeme bilgilerinizi girin ve Ücretsiz Denememi Başlat (Start My Free Trial) veya Gönder ve Faturalandırmayı Başlat seçeneklerinden birine basın
- Sayfanın üstünde yer alan Projelerim'e (My Projects) tıklayın
- Yukarıda oluşturduğunuz projenin yanındaki Actions'ın altındaki üç noktaya tıklayın
- Faturalandırmayı değiştir'e (Change billing) tıklayın
- Açılan menüde yukarıdaki adımlarda oluşturduğunuz faturalandırma hesabını seçin. Hesabı Belirle'ye (Set Account) tıklayın
Gereksiz ödemelerden kaçınmak için, çalışmanın sonunda faturalandırma hesabınızı ve projenizi silmeyi unutmayın
Diyalogu başlatalım
Kullanıcılar, Action'larınız ile diyaloglarını invokation (çağrı) ile başlatıyorlar. Örneğin Türkiye Gezgini isimli bir Action'ınız varsa, kullanıcılar "Hey Google, Türkiye Gezgini ile konuş" demek suretiyle Action'ınızı çağırabilirler.
Yayınlamak istediğiniz Action'larınıza bu şekilde çağrı ismi vermeniz gerekiyor ancak test aşamasındaki Action'larınızı "Hey Google, Test Uygulamam ile konuş" demek suretiyle hem simülatörde hem de cihazda test edebilirsiniz.
Kullanıcı sesli uygulamanızı çağırdığında onu nasıl karşılayacağınızı belirlemek için main invocation'ı düzenlemeniz gerekiyor.
Main invocation: Kullancıların Action ile konuşma başlatmak için kullandıkları giriş noktası. Kullanıcı "Hey Google, 'uygulama ismi' ile konuş" veya benzeri bir şey söylediğinde main invocation tetiklenir ve kullanıcıya cevap verir.
Varsayılan olarak Actions Builder main invocation için genel geçer bir prompt (cevap) vermektedir.
Prompt: Action'ın kullanıcıya verdiği cevap. Prompt yazı ve sesten oluşan simple response (basit cevap) olabileceği gibi, kart ve resimler içeren rich response da olabilir. Kullanıcıya tam ekran görseller şekliden cevap vermek için Canvas isimli özel cevap türünü de kullanabilirsiniz.
Bir sonraki bölümde, Actions konsolda sesli uygulamanız için belirlenmiş olan main invocation'ı özelleştirmeyi öğreneceksiniz.
Main invocation'ı özelleştirmek
Action'ın tetiklendiğinde verdiği cevabı özelleştirmek için şu adımları izleyin:
- Soldaki menüden Main invocation'ı seçin
Main Invocation'ı özelleştirmek - Kod editöründe,
speech
(konuşma) alanını şu karşılama mesajı ile değiştirin:Selam olsun maceracı! Efsanevi Gryffinberg'e hoşgeldin. Kıyafetlerine bakılırsa buralı değilsin. Destansı bir yolculuğa çıkmışsın.
Not: Prompt'ları düzenlemek için ister YAML ister JSON kullanabilirsiniz.
- Save'e (Kaydet) basın.
Simülatorde main invocation'ı test etmek
Actions konsol, Action'larınızı web üzerinde test etmeniz için bir Simülatör sunuyor. Bu simülatör, cihazları ve özelliklerini taklit ederek Action ile sanki o Action'ı bir akıllı telefonda, hoparlörde, ekranda veya KaiOS'ta kullanıyormuş gibi konuşmanıza olanak sağlar.
Actions simülatör ile ilgili en güncel bilgiyi Simulator Guide sayfasında bulabilirsiniz.
Şimdi, Action'ı çağırdığınızda yukarı belirlediğiniz prompt ile cevap vermeli.
Action'ı test etmek için aşağıdaki adımları izleyin:
- Üst menüden Test'e tıklayarak Simülatör'ü açın
- Action'ı çağırmak için sol üstteki kutucuğa
"Test uygulamam ile konuş"
yazın ve Enter'a basın.Actions simülatör
İpucu: Kutucuğa yazmak yerine "Test uygulamam ile konuş" öneri butonuna da basabilir veya mikrofon simgesine tıklayarak "Test uygulamam ile konuş" diyebilirsiniz.
Artık Action'ın main invocation'ı tetiklendiğinde, kullanıcı özelleştirdiğiniz hoşgeldiniz mesajını duyuyor. Bu aşamada diyalog, Asistan'ın cevabından sonra bitiyor. Bir sonraki adımda diyalogu devamettirmek için Action'ı nasıl geliştireceğinizi öğreneceksiniz.
Event loglarını görüntüleyin
Test sekmesindeyken, sağdaki panel event loglarını (olay günlüklerini) gösterir. Event loglarına bakarak diyalogun geçmişini görebilirsiniz. Her bir log, diyalogun o turunda gerçekleşen olayları gösterir.
Action'ınızın şu an yalnızca kullanıcının girdisini ve Action'ın cevabını içeren tek bir event logu var.
Eğer event logundaki aşağı ok tuşuna basarsanız, konuşmanın o turunda gerçekleşen eventleri kronolojik sıra ile görebilirsiniz.
user input
: Kullanıcı girdisiinteractionMatch
: Kullanıcının girdisi ile tetiklenmiş olan Action'ın main invocation cevabını gösterir. Eğer bu satırı oka tıklayarak genişletirseniz main invocation için eklediğiniz prompt'u görebilirsiniz.endConversation
: Main invocation için belirlenmiş olan transition (geçiş) yapılacak diyalog durumunu ifade ediyor, şimdilik test Action'ında konuşma burada bitiyor. (Bu çalışmanın bir sonraki adımında transition'lara dair daha detaylı bilgi yer almaktadır.)
Event logları uygulamanızın nasıl çalıştığını gösterir ve bir sorun olduğunda debug etmeyi kolaylaştırır. bir event'in detaylarını görmek için, aşağıda gösterildiği gibi event'in yanındaki ok tuşuna basın:
Action'ın diyalogunu oluşturma
Action'ın karşılama mesajını özelleştirdiğinize göre, Action'ın diyalogunun kalanını oluşturmaya geçebiliriz. Bu çalışmaya devam etmeden önce, aşağıdaki terimlere aşina olmanız, Action'ın nasıl çalıştığını anlamanız için faydalı olacaktır.
Scene (Sahne): Action'ın kullanıcı girdisini işleyen ve genelde kullanıcıya cevap veren yapıtaşı.
User Intent (Kullanıcının Amacı): Action tarafından anlaşılabilen kullanıcı girdilerini ifade eder. Intent'ler için örnek cümleleri (training phrase) belirlersiniz. Kullanıcı, bu örnek cümlelerden birini veya buna yakın bir cümleyi söylediğinde intent eşleşmiş (match) olur.
Training phrases (Örnek Cümleler): Kullanıcının bir intent'i (amacı) ifade etmek için kullanabileceği örnek cümleler. Assistant'ın NLU (Natural Language Understanding - Doğal Dil İşleme) motoru, bu cümlelere yakın cümleleri de tanımak için training phrase'lerden öğrenir.
Transition (Geçiş): Koşullar gerçekleştiğinde hangi sahneden sahneye geçilmesi
Action bir veya daha fazla sahneden oluşabilir. Sahnelerin çalışmaları için tetiklenmeleri gerekir. (Bu çalışmada geliştireceğiniz Action'ın Start
isimli tek bir sahnesi olacak) Bir sahneyi tetiklemenin en kolay yolu, Action'ın bir başka sahnesinde bir intent eşleştiğinde diğer sahneye geçilmesi için trasition tanımlamaktır.
Örneğin, kullanıcılara hayvanlarla ilgili bilgiler veren farazi bir Action olduğunu düşünelim. Kullanıcı bu Action'ı çağırdığında, Main invocation
intent'i eşleşir ve Facts
isimli bir sahneye geçişi tetikler. Bu geçiş Facts isimli sahneyi tetikler ve o sahne de kullaınıcıya "Kedilerle ilgili mi yoksa köpeklerle ilgili mi bilgi almak istersiniz?"
diye bir cevap döner. Facts
sahnesi içerisinde kullanıcının kedi ile ilgili bilgi almak istediğinde söyleyebileceği bazı training phrase'ler ile tanımlanmış Cat
isminde bir intent vardır. Kullanıcı kedilerle ile ilgili bilgi almak istediğini söylediğinde Cat
intent'i eşleşir ve Cat fact
isimli bir başka sahneye geçişi tetikler.
Sahneler, intentler ve geçişler bir araya gelerek Action'ın mantığını oluştururlar ve kullanıcının Action içerisinde gidebileceği farklı yolları belirlerler. Bir sonraki bölümde bir sahne oluşturmayı ve kullanıcı uygulamanızı çağırdığında bu sahnenin nasıl tetikleneceğini öğreneceksiniz.
Main invocation'dan sahneye geçiş
Bu bölümde kullanıcıya falına bakılmasını isteyip istemediğini soran Start
isminde bir sahne oluşturacaksınız. Aynı zamanda main invocation'dan Start
sahnesine bir geçiş oluşturacaksınız.
Bu sahneyi oluşturmak ve geçiş eklemek için aşağıdaki adımları takip edin:
- Üst menüden Develop sekmesine gelin. Daha sonra sol menüden main invocation’ı seçin.
- Sağdaki Transition (geçiş) bölümünde yer alan açılır menüye tıklayın ve kutucuğa
Start
yazınTransition oluşturma - Add’e tıklayın. Böylece
Start
isminde bir sahne oluşturmuş ve Action'ı kullanıcıya karşılama mesajını verdikten sonraStart
sahnesine geçecek şekilde ayarlamış oldunuz - Sahnelerinizin listesini görmek için sol menüden Scenes’e tıklayın.
- Scenes’in altında
Start
sahnesini görmek için Start’a basın. Start
sahnesinin On enter (giriş yapılınca) bölümünde yer alan + tuşuna basın- Sağda Send prompts’u (cevap gönder) işaretleyin
speech
(konuşma) alanındaki cevap cümlesini kullanıcıya sormak istediğiniz soru ile değiştirin:Macerana devam etmeden önce falına bakılmasını ister misin?
Start sahnesi - Save’e tıklayarak kaydedin.
Artık Google Asistan, kullanıcı sahneye girdiğinde yazdığınız soruyu soracaktır.
Öneri butonları ekleyin
Suggestion chips (öneri butonları) kullanıcıların sesle girdi yapmak yerine üzerine tıklayabilecekleri öneriler sunan araçlardır. Bu bölümde, ekranı olan bir cihazda Action'ı kullanan kullanıcılara sorulan soruya cevap olarak verilebilecek seçenekleri öneri butonu olarak göstermeyi öğreneceksiniz.
Start
sahnesinin sorusuna öneri butonu eklemek için aşağıdaki adımları takip edin:
Start
sahnesinde, kod editörünün altındaki suggestions’a basın. Bu işlem bir adet öneri butonu oluşturacaktırtitle
alanında, Suggested Response (önerilen cevap) kısmını'Evet'
ile değiştirin- Aynı formatı kullanarak
'Hayır'
için de bir öneri butonu ekleyin. kodunuz aşağıdaki gibi gözükmelidir.
suggestions:
- title: 'Evet'
- title: 'Hayır'
- Save’e tıklayarak kaydedin.
Action’ı Simülatörde test edin
Bu aşamada Action main invocation'dan Start
sahnesine geçiş yapmalı ve kullanıcıya falına bakılmasını isteyip istemediğini sorabilmeli. Aynı zamanda simülatör ekranında öneri butonlarını da görebiliyor olmalıyız.
Action'ı simülatörü test etmek için aşağıdaki adımları izleyin:
- Üst menüden Test sekmesine gelin
- Action'ı simülatörde test etmek için Input kutucuğuna
Test uygulamam ile konuş
yazın ve Enter’a basın. - Action,
main invocation
cevabı ile cevap vermeli daha sonraStart
sahnesi için belirlediğiniz soruyu sormalıdır:Macerana devam etmeden önce falına bakılmasını ister misin?
Etkileşim şu şekilde olmalıdır:
Event log'ları güncel oturumunuz için simülatördeki tüm etkileşimlerinizi göstermektedir. Dolayısıyla bu çalışmada yaptığınız önceki test de event log üzerinde görülmektedir. Event log’larını temizlemek için Reset Test’e tıklayabilirsiniz.
- Soru sorulduğunda cevap vermek için
Evet
veyaHayır
öneri butonlarından birine tıklayın (Dilerseniz mikrofonu kullanarak "Evet" veya "Hayır" diyebilir yahut Input kutucuğunaEvet
ya daHayır
yazabilirsiniz)
Soruya cevap verdiğinizde Action size ne söylediğinizi anlamadığını söyleyerek cevap verecektir. Çünkü henüz Action’ın seçeneklere nasıl cevap vereceğini belirlemediniz. Bu nedenle NO_MATCH
intent’i eşleşti.
NO_MATCH: Kullanıcının söyledikleri Action içerisindeki herhangi bir intent ile eşleşmediğinde devreye giren bir kapsayıcı intent’tir.
System intent: Varsayılan olarak ayarlanmış olan genel geçer sistem olaylarını karşılayan intent’lerdir. (Örneğin kullanıcının anlaşılmayan bir şey söylemesi gibi)NO_MATCH
ve main invocation'ı çağıran intent system intent’lerin örnekleridirler.
Varsayılan olarak NO_MATCH
sistem intent’i genel bir cevap vermektedir. Ancak bu cevabı özelleştirebilirsiniz. Asistan eğer üç kez kullanıcının ne söylediğini anlayamaz ise Action ve kullanıcı arasındaki diyaloğu bitirecektir.
Evet ve Hayır intent’lerini ekleyin
Artık kullanıcılar Action’ın sorduğu soruya yanıt verebildiğine göre, Action’ı da kullanıcının yanıtını anlayacak şekilde geliştirmeliyiz. Bu bölümde kullanıcı 'Evet' veya 'Hayır' dediğinde tetiklenecek olan intent’leri oluşturulmasını ve bunları Start
sahnesine eklenmesini öğreneceğiz.
yes
intent’ini oluşturun
Evet intent’ini oluşturmak için aşağıdaki adımları takip edin:
- Üst menüden Develop sekmesine gelin
- Soldaki menüden Intents’e tıklayarak intent’lerin listesini açın
- Intent listesinin sonundaki +‘ya basın. Yeni intent’in adını
yes
koyun ve Enter’a basın - Soldaki menüde
yes
’e tıklayarakyes
intent’ini görüntüleyin - Add training phrases bölümünde, örnek cümleler eklemek için Enter Phrase kutucuğuna aşağıdaki cümleleri ekleyin:
- Evet
- E
- Olur
- İsterim
- Bak
- Save’e basarak kaydedin
yes
intent’ini Start
sahnesine ekleyin
Artık Action kullanıcının yes
intent’ini tetiklediğini anlayabiliyor. Kullanıcı Start
sahnesinin sorusuna yanıt olarak "Evet" dediği için yes
intent’ini Start
sahnesine ekleyelim.
Bu intent’i Start
sahnesinde eklemek için aşağıdaki adımları uygulayın
- Sol menüden Scenes’in altında
Start
sahnesini seçin Start
sahnesi altında yer alan User intent handling kısmının yanındaki +’ya tıklayın- Açılan menüde
yes
seçeneğini seçinEvet intent'i - Sağdaki bölümden Send prompts’u işaretlerin ve
speech
alanınıGeleceğin, macera için seçeceğin yardıma bağlı. Seçimini akıllıca yap! Elveda, yabancı.
olarak değiştirin
Editördeki kod şu şekilde gözükmeli:
candidates:
- first_simple:
variants:
- speech: >-
Geleceğin, macera için seçeceğin yardıma bağlı. Seçimini akıllıca yap! Elveda, yabancı.
- Transition bölümünde açılan menüden End conversation’ı seçerek konuşmayı bitirin
- Save’e tıklayarak kaydedin
**yes
intent’ini Simülatörde test edin**
Bu aşamada Action kullanıcının falına bakılmasını istediğini anlıyor ve uygun bir cevap verebiliyor.
Bu intent’i simülatörde test etmek için aşağıdaki adımları izleyin:
- Üst menüden Test sekmesine gelin
- Action'ı simülatörde test etmek için Input kutucuğuna
Test uygulamam ile konuş
yazın ve Enter’a basın. - Input kutucuğuna
Evet
yazın veya öneri butonlarından “Evet”i seçinEvet intent'inin testi
Gördüğünüz gibi artık Action kullanıcıya cevap veriyor ve geleceklerinin seçecekleri yardıma bağlı olduğunu söylüyor. Daha sonra ise transition olarak End conversation
belirlediğimiz için Action konuşmayı bitiriyor.
no
intent’ini oluşturun
Evet intent’ini oluşturmak için aşağıdaki adımları takip edin:
- Üst menüden Develop sekmesine gelin
- Soldaki menüden Intents’e tıklayarak intent’lerin listesini açın
- Intent listesinin sonundaki +‘ya basın. Yeni intent’in adını
no
koyun ve Enter’a basın - Soldaki menüde
no
’ya tıklayarakno
intent’ini görüntüleyin - Add training phrases bölümünde, örnek cümleler eklemek için Enter Phrase kutucuğuna aşağıdaki cümleleri ekleyin:
- Hayor
- H
- Olmaz
- İstemrm
- Bakma
- Save’e basarak kaydedin
no
intent’ini Start
sahnesine ekleyin
Artık Action kullanıcının no
intent’ini tetiklediğini anlayabiliyor. Kullanıcı Start
sahnesinin sorusuna yanıt olarak "Hayır" dediği için no
intent’ini Start
sahnesine ekleyelim.
Bu intent’i Start
sahnesinde eklemek için aşağıdaki adımları uygulayın
- Sol menüden Scenes’in altında
Start
sahnesini seçin Start
sahnesi altında yer alan User intent handling kısmının yanındaki +’ya tıklayın- Açılan menüde
no
seçeneğini seçinHayır intent'i - Sağdaki bölümden Send prompts’u işaretlerin ve
speech
alanınıAnlıyorum yabancı. Maceranda bol şans! Elveda.
olarak değiştirin
Editördeki kod şu şekilde gözükmeli:
candidates:
- first_simple:
variants:
- speech: >-
Anlıyorum yabancı. Maceranda bol şans! Elveda.
- Transition bölümünde açılan menüden End conversation’ı seçerek konuşmayı bitirin
- Save’e tıklayarak kaydedin
no
intent’ini Simülatörde test edin
Bu aşamada Action kullanıcının falına bakılmasını istediğini anlıyor ve uygun bir cevap verebiliyor.
Bu intent’i simülatörde test etmek için aşağıdaki adımları izleyin:
- Üst menüden Test sekmesine gelin
- Action'ı simülatörde test etmek için Input kutucuğuna
Test uygulamam ile konuş
yazın ve Enter’a basın. - Input kutucuğuna
Hayır
yazın veya öneri butonlarından “Hayır”ı seçinHayır intent'inin testi End conversation
belirlediğimiz için Action konuşmayı bitiriyor.
Fulfillment geliştirin
Şimdilik sesli uygulamanız yalnızca statik cevaplar verebiliyor. Diğer bir ifade ile kullanıcı aynı sahneyi tetiklediğinde hep aynı cevap alıyor. Bu bölümde dinamik bir cevap oluşturmanızı sağlayacak bir mantığı nasıl geliştireceğinizi öğreneceksiniz.
Fulfillment: Action’ın çalışma mantığını içeren kod. Bir webhook sayesinde Action’da gerçekleşen olaylara göre fulfillment’ınıza çağrı yapabilirsiniz.
Fulfillment’ınız kullanıcının yeni bir kullanıcı mı yoksa uygulamanıza geri dönen bir kullanıcı mı olduğunu algılayabilir ve buna göre uygulamanıza ilk kez gelmeyen kullanıcılara onlara özgü bir karşılama mesajı vermenizi sağlayabilir. Özelleştirilmiş karşılama mesajı, geri dönen kullanıcılar için daha kısa olacaktır ve kullanıcının yeni değil, geri dönen bir kullanıcı olduğunu belli edecektir: “Merhaba maceracı! Gryffinber’in sihirli dünyasına tekrar hoşgeldin!”
Bu çalışmada fulfillment geliştirmek ve yayına almak için Actions konsolda yer alan Cloud Functions editörünü kullanacağız.
Cloud Functions editör: Actions konsol içerisinde yer alan ve Firebase Cloud Functions kullanarak fulfillment kodunuzu yazmanızı ve yayına almanızı sağlayan bir editör.
Uygulamanız; çağrıldığında veya sahnelerin bazı bölümlerine gelindiğinde fulfillment’ınıza bazı event’lerin gerçekleştiğini bir webhook’u tetiklemek suretiyle bildirebilir. Bir webhook tetiklendiğinde, Action’ınız fulfillment’ınıza bir JSON payload ile gerçekleşen event’in adını içeren bir request gönderir. Fulfillment’ınızda bu event için geliştirdiğiniz handler mantığı çalışır ve kullanıcıya vermek istediğiniz cevabı içeren bir JSON payload ile cevap verir.
Fulfillment’ı geliştirin
Artık fulfillment’ınızı editörde yeni kullanıcılara ve geri dönen kullanıcılara farklı cevaplar vermek üzere geliştirebilirsiniz.
Fulfillment’ınıza bu mantığı eklemek için aşağıdaki adımları takip edin:
- Üst menüden Develop sekmesine gelin
- Soldaki menüden Webhook’u seçin
- Inline Cloud Functions’ı seçin ve Confirm’e basarak onaylayın.
index.js
vepackage.json
içerisine şablon kodlar otomatik olarak eklenecektir.Webhook geliştirme türü index.js
’in içeriğini aşağıdaki kodla değiştirin:
const { conversation } = require('@assistant/conversation');
const functions = require('firebase-functions');
const app = conversation({debug: true});
app.handle('greeting', conv => {
let message = 'Merhaba maceracı! Gryffinber’in sihirli dünyasına tekrar hoşgeldin!';
if (!conv.user.lastSeenTime) {
message = 'Selam olsun maceracı! Efsanevi Gryffinberg\'e hoşgeldin. Kıyafetlerine bakılırsa buralı değilsin. Destansı bir yolculuğa çıkmışsın.';
}
conv.add(message);
});
exports.ActionsOnGoogleFulfillment = functions.https.onRequest(app);
- Save fulfillment’a basarak kaydedin.
- Deploy fulfillement’a basarak yayına alın.
Cloud Functions’ın kodunuzu yayına alması için birkaç dakika bekleyin. Beklerken editörün üstünde "Cloud Function deployment in progress..." mesajını göreceksiniz. Kod yayına alındığında ise bu mesaj "Your Cloud Function deployment is up to date." Olarak değişecektir.
Fulfillment, Node.js Actions on Google Fulfillment kütüphanesini kullanarak Asistan’dan gelen HTTP request’lerini cevaplıyor.
Yukarıdaki kodda, greeting
isminde bir event handler tanımladınız. Bu handler fonksiyon, lastSeenTime
property’sine bakarak kullanıcının daha önce Action’ı kullanıp kullanmadığını kontrol ediyor. Eğer lastSeenTime
tanımlanmadıysa, kullanıcının yeni bir kullanıcı olduğunu anlıyor ve ilk kez gelen kullanıcılar için özelleştirilmiş olan karşılama mesajını veriyor.
Main invocation’ı bir webhook’u tetiklemek üzere değiştirin
Artık greeting fonksiyonunu tanımladığınıza göre, main invocation’ı bu handler fonksiyonu çağıracak şekilde ayarlayabilirsiniz.
Action’ı greeting
handler’ını çağırmak üzere ayarlamak için aşağıdaki adımları takip edin:
- Soldaki menüden Main invocation’ı seçin
- Send prompts’tan işareti kaldırın ve Call your webhook’u işaretleyin
- Kutucuğa
greeting
yazınWebhook handle'ını girmek - Save’e basarak kaydedin
Main invocation’ın son halini simülatörde test edin
Action’ı simülatörde test etmek için aşağıdaki adımları izleyin:
- Üstteki menüden Test sekmesine gelin
- Action’ı simülatörde test etmek için kutucuğa
Test uygulamam ile konuş
yazın veEnter
’a basın
Bu çalışmada Action’ı daha evvel test ettiğiniz için yeni bir kullanıcı değilsiniz. Bu yüzden kısaltılmış karşılama mesajı ile karşılanmış olmalısınız: “Merhaba maceracı! Gryffinber’in sihirli dünyasına tekrar hoşgeldin!”
Sırada ne var?
Tebrikler!
Artık Google Asistan için Action geliştirmenin temellerini biliyorsunuz.
Öğrendikleriniz
- Actions konsolda bir Actions projesi oluşturmak
- Main invocation’a cevap eklemek
- Sahneleri, intent’leri, geçişleri, öneri butonlarını ve fulfillment’ı kullanarak bir diyalog oluşturmak
- Action’ı Actions simülatörde test etmek
Projenizi ve faturalandırma hesabınızı silmeyi unutmayın
Eğer kullanmaya devam etmeyeceksiniz projenizi ve faturalandırma hesabınızı silmeyi unutmayın. Aksi halde beklenmedik ödemelerle karşılaşabilirsiniz.