Merhaba,
Apple Siri, Microsoft Cortana, Amazon Echo(Alexa), Google Assistant gibi sesli asistanlar her geçen gün hayatımızda yer etmeye başladılar. Bunlarla birlikte botlar Telegram, Slack, Kik gibi mesajlaşma uygulamaları chatbot geliştirilmesine imkan verirken, en popüler Facebook Messenger’ın da geliştiriciler için bot platformunu ve chatbotlara özel uygulama mağazasını devreye alması yaygınlaşmasında büyük rol oynadı.
Chatbot, kullanıcıların mesajlaşma platformlarında belirlenmiş kurallar çerçevesinde hizmet eden bir servistir. Kullanıcılar telefonlarda yüzlerce uygulamalar ile dolaşmak yerine tek bir arayüz ile bir çok servisi alabiliyorlar. Yapay zeka (doğal dil işleme) desteği ile konuşmaların doğal akışını taklit edebilme yeteneği kazandırabilirsiniz.
Şimdi Node.js ile facebook messenger chatbotu adım adım nasıl geliştirebiliriz ve yayına alabiliriz ona bakalım.
- Node.js uygulamasını yayınlamak için Heroku‘dan hesap açarak yeni bir uygulama oluşturalım.
- Uygulama adını chatbotweather olarak belirlediğimiz için oluşturduğumuz heroku üzerindeki ücretsiz uygulamamızın erişim adresi https://chatbotweather.herokuapp.com/ olacaktır.
- Buradan bir Facebook Uygulaması oluşturalım, bir isim ile iletişim e-postası verelim ve ürün olarak Messenger seçelim.
- Yeni oluşturduğunuz veya mevcut bir sayfayı seçerek sayfa erişim token’ı oluşturalım.
- Facebook’un hızlı bir başlangıç için bize sunduğu demo uygulamasını buradan indirelim.
- Örnek uygulama içerisinde config/default.json içerisindeki
appSecret parametresini facebook uygulamamazın dashboard bölümündeki App Secret değeri ile,pageAccessToken parametresini 4. madde de bağladığımız sayfadan oluşturulan Page Access Token değeri ile,
validationToken parametresini daha sonra facebook uygulamamız ile chatbotumuz arasındaki etkileşimi sağlamak için webhooks bağlantısını doğrulamak için kendimizin belirlediği bir değer ile(test_token),serverURL parametresini chatbot uygulamamızın yayında olduğu adres ile(https://chatbotweather.herokuapp.com/) değiştirelim.
- Dilerseniz public/index.html içerisindeki messenger_app_id ve page_id parametrelerini de değiştirerek chatbota dinamik erişim buttonları oluşturabilirsiniz.
- Değişiklerimizi yaptıktan sonra şimdi Heroku’ya yayınlayalım.
Komut satırından bilgisayarınızda uygulamanızın bulunduğu klasöre gelerek sırasıyla aşağıdaki git komutları ile Heroku’ya deploy yapalım.1heroku login
Heroku hesabınızın kullanıcı adı ve şifresi ile giriş yapalım
123git add .
git commit -am "ilk deploy"
git push heroku master
- Tekrar facebook uygulama ayarlarına dönüyoruz. Messenger ayarlarından Setup Webhooks a tıklayarak
Callback URL olarak Heroku yayın adresimiz/webhook: https://chatbotweather.herokuapp.com/webhook
Verify Token olarak uygulamamız içerisinde config/default.json dosyasında belirlediğimiz validationToken değerini: test_token
Ve yetki alanlarının tamamını işaretleyelim.
- Buraya kadar başarılı şekilde geldiksey şimdi chatbotumuzu test etme zamanı
Facebook sayfamızın mesaj gönderme bölümünden uygulamamızda text mesajlara cevap olarak tanımlanmış templateleri (image, gif, audio, video, file, button, generic, receipt, qucik reply) test edebiliriz.
- Node.js uygulamamızın app.js içerisindeki receivedMessage fonksiyonu içerisindeki örnek kodları inceleyerek kendinize göre düzenleyebilirsiniz.
Kullanıcıdan gelen mesaja göre API’lere istekler yaparak cevapları parse edip uygun templatelerde cevap olarak dönebilirsiniz.
Hızlı şekilde facebook messengerın örnek chatbotunu nasıl yayına alınacağını ve facebook sayfasına bağlanacağını göstermeye çalıştım.
Sorularınız olursa yorum kısmından iletişime geçebilirsiniz.
İstanbul’daki nöbetçi eczaneleri bulmanıza yardımcı geliştirdiğim nöbetçi eczane chatbotunu da inceleyebilirsiniz.
Kaynak: