Mengintegrasikan Hubot dengan Google Chat

Hubot adalah cara yang bagus untuk mem-build aplikasi yang berfungsi di beberapa platform. Dengan Adaptor Hubot Google Chat, Anda dapat memanfaatkan aplikasi Hubot dengan mudah di Google Chat. Adaptor memasukkan pesan ke Hubot dan menayangkan balasan.

Adaptor Hubot Google Chat mendukung dua jenis endpoint:

  • HTTP
  • Cloud Pub/Sub

Panduan ini menjelaskan cara meluncurkan aplikasi Hubot di Google Chat, menggunakan salah satu jenis endpoint.

Menginstal

Ikuti petunjuk di Memulai Hubot untuk mendownload dan menginstal alat yang diperlukan: Node.js, npm, dan generator Hubot untuk Yeoman.

Anda dapat mencoba membuat instance Hubot baru yang menggunakan adaptor shell bawaan, menginstal skrip Hubot, mencoba menggunakannya, dan memahami ekosistem Hubot serta mengembangkan aplikasi Hubot.

Menggunakan adaptor Google Chat Hubot

Bagian ini akan memandu Anda dalam membuat aplikasi Hubot yang menggunakan adaptor Google Chat, men-deploy aplikasi tersebut di AppEngine, dan memublikasikan aplikasi di Google Chat. Anda juga dapat memilih untuk men-deploy aplikasi di sistem apa pun selain App Engine.

Adaptor Hubot Google Chat mendukung dua mode: HTTP dan Cloud Pub/Sub. Mode HTTP menjalankan server web Express dan memproses peristiwa di port yang ditentukan pengguna. Mode Cloud Pub/Sub membuat subscriber Pub/Sub dan mengambil peristiwa dari langganan yang ditentukan pengguna. Saat menerima peristiwa dari Google Chat, kedua mode membuat objek HangoutsChatMessage (yang memperluas salah satu objek Message Hubot) dan meneruskannya ke skrip Hubot Anda. Respons dari skrip Hubot Anda diposting ke ruang chat atau DM di Google Chat tempat peristiwa pesan asli dipublikasikan ke aplikasi.

Membuat instance Hubot

Pastikan untuk menyiapkan Node.js, pengelola paket npm, dan generator Yeoman untuk Hubot sebelum melanjutkan.

Misalnya Anda ingin membuat aplikasi bernama "myhubot". Mulailah dengan membuat direktori baru, lalu buat instance Hubot Anda di dalamnya.

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

Pada titik ini, Yeoman mengajukan beberapa pertanyaan tentang siapa yang membuat aplikasi dan adaptor mana yang akan digunakan. Tentukan google-hangouts-chat untuk adaptor.

Atau, Anda dapat menginstal adaptor secara terpisah menggunakan perintah berikut:

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

Di Hubot, perilaku aplikasi yang sebenarnya diterapkan menggunakan skrip. Hubot dilengkapi dengan skrip contoh yang dapat Anda gunakan untuk pengujian. Setelah menyiapkan semuanya, Anda dapat menyesuaikan dan menambahkan skrip Anda sendiri untuk menerapkan perilaku aplikasi yang diinginkan.

Mengonfigurasi opsi untuk adaptor Google Chat

Opsi diteruskan ke adaptor Google Chat menggunakan variabel lingkungan.

Akun Layanan

Untuk menggunakan adaptor, Anda harus menyiapkan akun layanan untuk aplikasi Anda. Ikuti panduan Menggunakan akun layanan untuk membuat akun layanan dan mendownload file JSON yang berisi kunci Anda. Kemudian, tetapkan jalur ke kunci Anda di variabel lingkungan:

# 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 Options

Tidak ada konfigurasi tambahan yang diperlukan untuk menjalankan adaptor dalam mode HTTP. Adaptor menggunakan server ekspres Hubot, yang berjalan di port 8080 secara default. Untuk mengubah port, Anda perlu menetapkan variabel lingkungan PORT:

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

Opsi Cloud Pub/Sub

Lihat Menyiapkan endpoint Pub/Sub untuk menyiapkan project GCP, topik Cloud Pub/Sub, langganan, dan akun layanan yang akan digunakan oleh aplikasi Anda. Abaikan kode contoh pada link; dalam paragraf di bawah ini, Anda akan membuat aplikasi Hubot dengan adaptor Google Chat.

Untuk menggunakan adaptor Google Chat dalam mode Pub/Sub, Anda perlu menetapkan opsi berikut:

# 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'

Menjalankan secara lokal

Untuk menjalankan instance Hubot secara lokal, jalankan perintah yang sesuai dari direktori myhubot:

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

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

Pesan berikut akan muncul di konsol jika Adaptor Google Chat Hubot berhasil diinisialisasi:

Hangouts Chat adapter initialized successfully

Bergantung pada apakah Anda mengonfigurasi adaptor HTTP atau adaptor Cloud Pub/Sub, informasi lain yang relevan juga dapat muncul di layar.

Men-deploy di AppEngine

Ikuti petunjuk di Quickstart AppEngine untuk menyiapkan lingkungan pengembangan dan project GCP.

Setelah penyiapan selesai, ikuti langkah-langkah di bawah untuk mengonfigurasi dan men-deploy instance Hubot Anda di AppEngine.

Membuat app.yaml

Pertama, buat file app.yaml di direktori Hubot Anda. Kontennya akan menyerupai contoh berikut:

runtime: nodejs8
env_variables:
  PORT: 8080
  

Mengonfigurasi lingkungan

Selanjutnya, periksa petunjuk di halaman ini untuk mengonfigurasi variabel lingkungan.

Membuat package.json

Terakhir, buat file package.json yang menentukan versi node.js dan properti skrip yang digunakan untuk meluncurkan aplikasi.

  • Tentukan versi Node.js yang ingin digunakan dengan properti engines dalam file package.json.
  • AppEngine menggunakan npm start untuk memulai aplikasi Anda. Siapkan properti scripts di package.json untuk mengonfigurasi npm mulai memanggil Hubot.
# 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

Memublikasikan di Google Chat

Ikuti petunjuk di halaman Memublikasikan aplikasi untuk memublikasikan aplikasi di Google Chat melalui Google Cloud Console. Konfigurasikan endpoint yang sesuai (HTTP atau Cloud Pub/Sub) di halaman konfigurasi aplikasi. Jika membuat project GCP di langkah sebelumnya untuk men-deploy instance Hubot di AppEngine, Anda dapat menggunakan project GCP yang sama untuk memublikasikan aplikasi.

Menguji aplikasi

Setelah memublikasikan aplikasi, Anda dapat menambahkannya ke ruang atau memulai pesan langsung dengan aplikasi tersebut di Google Chat. Aplikasi Anda harus merespons pesan yang dikirim ke aplikasi. Hubot dilengkapi dengan skrip contoh di folder scripts-nya. Hapus tanda komentar kode dalam skrip contoh yang merespons pesan yang berisi kata "badger" dan mulai ulang aplikasi.

Jika Anda memberi nama aplikasi "myhubot" dan menambahkannya ke ruang, Anda dapat mengirim pesan seperti yang ditunjukkan di bawah:

@myhubot badger

Anda akan melihat respons berikut dari aplikasi Anda:

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

Anda kini dapat menyesuaikan atau menambahkan skrip Hubot ke instance Hubot untuk menerapkan fungsi yang diinginkan bagi aplikasi Anda. Untuk melihat contoh skrip khusus Google Chat, lihat Google Chat Adapter GitHub Repository.