Hubot'yu Google Chat ile entegre etme

Hubot, birden fazla platformda çalışan uygulamalar geliştirmenin harika bir yoludur. Google Chat Hubot Bağdaştırıcısı ile Hubot uygulamalarınızı Google Chat'te kolayca kullanabilirsiniz. Adaptör, mesajları Hubot'a aktarır ve yanıtları sunar.

Google Chat Hubot adaptörü iki tür uç noktayı destekler:

  • HTTP
  • Cloud Pub/Sub

Bu kılavuzda, uç nokta türlerinden biri kullanılarak Google Hub'da Hubot uygulamasının nasıl başlatılacağı açıklanmaktadır.

Yükle

Gerekli araçları indirip yüklemek için Hubot Başlarken talimatlarını uygulayın: Node.js, npm ve Yeoman için Hubot jeneratörü.

Yerleşik kabuk adaptörünü kullanan yeni bir Hubot örneği oluşturmayı deneyebilir, Hubot komut dosyalarını yükleyebilir, bununla oynayabilir ve Hubot ekosistemi hakkında fikir edinebilir ve Hubot uygulaması geliştirebilirsiniz.

Hubot Google Chat adaptörünü kullanma

Bu bölüm; Google Chat adaptörünü kullanan bir Hubot uygulaması oluşturma, bu uygulamayı AppEngine'de dağıtma ve Google Chat'te yayınlama konusunda size yol gösterecektir. Uygulamayı AppEngine haricinde istediğiniz herhangi bir sisteme dağıtmayı da seçebilirsiniz.

Google Chat Hubot adaptörü iki modu destekler: HTTP ve Cloud Pub/Sub. HTTP modu, Express web sunucusunu çalıştırır ve kullanıcı tarafından belirtilen bağlantı noktasındaki etkinlikleri dinler. Cloud Pub/Sub modu, bir Pub/Sub abonesi oluşturur ve kullanıcının belirttiği bir abonelikten etkinlikleri çeker. Google Chat'ten etkinlik alırken her iki mod da bir HangoutsChatMessage nesnesi oluşturur (Hubot'un Message nesnelerinden birini genişletir) ve Hubot komut dosyanıza iletir. Hubot komut dosyanızdan verilen yanıt, orijinal mesaj etkinliğinin uygulamada yayınlandığı sohbet alanında veya Google Chat'te DM'de yayınlanır.

Hubot örneği oluşturma

Devam etmeden önce Node.js, npm paket yöneticisi ve Yeoman jeneratörünü ayarladığınızdan emin olun.

"myhubot" adlı bir uygulama oluşturmak istediğinizi varsayalım. Yeni bir dizin oluşturarak başlayın ve daha sonra Hubot örneğinizi oluşturun.

$> mkdir myhubot
$> cd myhubot
$> yo hubot

Bu noktada Yeoman, uygulamayı kimin oluşturduğu ve hangi adaptörün kullanılacağı hakkında birkaç soru soruyor. Adaptör için google-hangouts-chat değerini belirtin.

Alternatif olarak, aşağıdaki komutu kullanarak adaptörü bağımsız olarak yükleyebilirsiniz:

$> npm install --save hubot-google-hangouts-chat

Hubot'ta gerçek uygulama davranışı komut dosyaları kullanılarak uygulanır. Hubot, test için kullanabileceğiniz örnek bir komut dosyasıyla birlikte gelir. Her şeyi ayarladıktan sonra, istediğiniz uygulama davranışını uygulamak için kendi komut dosyalarınızı özelleştirebilir ve ekleyebilirsiniz.

Google Chat bağdaştırıcısı seçeneklerini yapılandırma

Seçenekler, ortam değişkenleri kullanılarak Google Chat bağdaştırıcısına iletilir.

Hizmet Hesabı

Adaptörü kullanmak üzere uygulamanız için bir hizmet hesabı oluşturmanız gerekir. Hizmet hesabı oluşturmak ve anahtarınızı içeren JSON dosyasını indirmek için Hizmet hesaplarını kullanma kılavuzuna bakın. Ardından, ortam değişkeninde anahtarınızın yolunu belirleyin:

# Point to the private key json file of the service account you created.
$> export GOOGLE_APPLICATION_CREDENTIALS='Path to the service account key json file'

HTTP Seçenekleri

Adaptörü HTTP modunda çalıştırmak için ek yapılandırma gerekmez. Bağdaştırıcı, varsayılan olarak 8080 bağlantı noktasında çalışan Hubot'nın ekspres sunucusunu kullanır. Bağlantı noktasını değiştirmek için PORT ortam değişkenini ayarlamanız gerekir:

# Port number, 8080 by default.
$> export PORT=8080

Cloud Pub/Sub Seçenekleri

Uygulamanız tarafından kullanılacak bir GCP projesi, Cloud Pub/Sub konusu, abonelik ve hizmet hesabı oluşturmak için Pub/Sub uç noktası oluşturma bölümüne bakın. Bağlantıdaki örnek kodu yoksayın; aşağıdaki paragraflarda Google Chat adaptörüyle bir Hubot uygulaması oluşturacaksınız.

Google Chat adaptörünü Pub/Sub modunda kullanmak için aşağıdaki seçenekleri ayarlamanız gerekir:

# To toggle the adapter to Pub/Sub mode.
$> export IS_PUBSUB=true

# Set the IDs of the project and subscription you created.
$> export PUBSUB_PROJECT_ID='GCP Project ID'
$> export PUBSUB_SUBSCRIPTION_ID='GCP Cloud Pub/Sub Subscription ID'

Yerel olarak çalıştır

Hubot örneğini yerel olarak çalıştırmak için myhubot dizininden ilgili komutu çalıştırın:

# For HTTP mode
$> bin/hubot -a google-hangouts-chat

# For Cloud Pub/Sub mode
$> bin/hubot -d -a google-hangouts-chat

Google Chat Hubot Bağdaştırıcısı başarıyla başlatıldıysa konsolda aşağıdaki mesaj görünür:

Hangouts Chat adapter initialized successfully

HTTP bağdaştırıcısı veya Cloud Pub/Sub bağdaştırıcısı yapılandırmasına bağlı olarak ekranda ilgili diğer bilgiler de görünebilir.

AppEngine'de Dağıtma

GCP projesini ve geliştirme ortamını ayarlamak için AppEngine Hızlı Başlangıç bölümündeki talimatları uygulayın.

Bu kurulumdan sonra, App Engine'de Hubot örneğinizi yapılandırma ve dağıtmayla ilgili aşağıdaki adımları uygulayın.

app.yaml dosyasını oluşturun

İlk olarak Hubot dizininizde bir app.yaml dosyası oluşturun. İçerik aşağıdaki örneğe benzer:

runtime: nodejs8
env_variables:
  PORT: 8080
  

Ortamı yapılandırma

Ardından, ortam değişkenlerini yapılandırmak için bu sayfadaki talimatları kontrol edin.

package.json oluştur

Son olarak, uygulamayı başlatmak için kullanılan Node.js sürümünü ve komut dosyaları özelliğini belirten bir package.json dosyası oluşturun.

  • package.json dosyanızdaki engines özelliğiyle kullanmak istediğiniz Node.js sürümünü belirtin.
  • AppEngine, uygulamanızı başlatmak için npm start uygulamasını kullanır. npm start to Hubot'u çağırmak için package.json dosyanızdaki scripts özelliğini ayarlayın.
# Sample snippet of package.json file

"dependencies" : {
  "hubot": "^3.1.1",
  "hubot-google-hangouts-chat": "^3",
  # more deps...
}

"scripts": {
  "start": "bin/hubot -a google-hangouts-chat"
},
"engines": {
  "node": ">=8"
}

# Once you've set up everything, deploy the app in AppEngine
$> gcloud app deploy

Google Chat'te yayınlama

Google Cloud Console aracılığıyla Google Chat'te uygulama yayınlamak için Uygulamaları yayınlama sayfasındaki talimatları uygulayın. Uygulama yapılandırma sayfasında uygun uç noktayı (HTTP veya Cloud Pub/Sub) yapılandırın. Hubot örneğinizi AppEngine'de dağıtmak için önceki adımda bir GCP projesi oluşturduysanız uygulamanızı yayınlamak için aynı GCP projesini kullanabilirsiniz.

Uygulamayı test edin

Yayınladıktan sonra uygulamanızı Google Chat'te bir alana ekleyebilir veya doğrudan mesaj ile başlatabilirsiniz. Uygulamanız kendisine gönderilen mesajlara yanıt vermelidir. Hubot, scripts klasöründe örnek bir komut dosyasıyla birlikte gelir. "Rozet" kelimesini içeren mesajlara yanıt veren örnek komut dosyasındaki açıklamayı kaldırın ve uygulamayı yeniden başlatın.

Uygulamanıza "myhubot" adını verip bir alana eklediyseniz aşağıda gösterildiği gibi mesaj gönderebilirsiniz:

@myhubot badger

Uygulamanızdan gelen yanıt şöyle olmalıdır:

Badgers? BADGERS? WE DON'T NEED NO STINKIN BADGERS

Artık Hubot örneğinizi özelleştirmek veya Hubot örneğinize eklemek ve istediğiniz işlevi uygulamak için Hubot örneğinize ekleyebilirsiniz. Google Chat'e özel örnek komut dosyalarını görmek için Google Chat Bağdaştırıcısı GitHub Deposu'na bakın.