Tích hợp Hubot với Google Chat

Hubot là một cách tuyệt vời để xây dựng một ứng dụng hoạt động trên nhiều nền tảng. Với Bộ chuyển đổi Hubot của Google Chat, bạn có thể dễ dàng sử dụng các ứng dụng Hubot của mình trong Google Chat. Bộ chuyển đổi gửi thông báo đến Hubot và phân phát phản hồi.

Bộ chuyển đổi của Google Chat Hubot hỗ trợ hai loại điểm cuối:

  • HTTP
  • Cloud Pub/Sub

Hướng dẫn này giải thích cách chạy một ứng dụng Hubot trong Google Chat bằng cách sử dụng một trong hai loại điểm cuối.

Cài đặt

Làm theo hướng dẫn trong bài viết Bắt đầu sử dụng Hubot để tải và cài đặt các công cụ cần thiết: Node.js, npmTrình tạo Hubot cho Yooman.

Bạn có thể thử tạo một phiên bản Hubot mới sử dụng bộ chuyển đổi shell tích hợp sẵn, cài đặt các tập lệnh Hubot, phát trên đó và tận hưởng hệ sinh thái Hubot cũng như phát triển một ứng dụng Hubot.

Sử dụng bộ chuyển đổi Google Chat trên Hubot

Phần này sẽ hướng dẫn bạn cách tạo một ứng dụng Hubot sử dụng bộ chuyển đổi của Google Chat, triển khai ứng dụng đó trong AppEngine và phát hành ứng dụng đó trong Google Chat. Bạn cũng có thể chọn triển khai ứng dụng này trong bất kỳ hệ thống nào khác ngoài AppEngine.

Bộ chuyển đổi của Google Chat Hubot hỗ trợ hai chế độ: HTTP và Cloud Pub/Sub. Chế độ HTTP xoay vòng máy chủ web Express và tăng cường theo dõi các sự kiện trong cổng do người dùng chỉ định. Chế độ Cloud Pub/Sub sẽ tạo người đăng ký Pub/Sub và lấy sự kiện từ người dùng đăng ký đã chỉ định. Khi nhận sự kiện từ Google Chat, cả hai chế độ đều tạo một đối tượng HangoutsChatMessage (mở rộng một trong các đối tượng Tin nhắn của Hubot) và chuyển đối tượng đó vào tập lệnh Hubot của bạn. Phản hồi từ tập lệnh Hubot của bạn được đăng lên không gian trò chuyện hoặc tin nhắn trực tiếp trong Google Chat, từ đó sự kiện tin nhắn gốc đã được phát hành lên ứng dụng.

Tạo một phiên bản Hubot

Hãy nhớ thiết lập Node.js, trình quản lý gói npm và trình tạo Yeoman cho Hubot trước khi tiếp tục.

Giả sử bạn muốn tạo ứng dụng có tên "myhubot". Hãy bắt đầu bằng cách tạo một thư mục mới rồi tạo phiên bản Hubot đó.

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

Tới đây, Yeoman đặt một vài câu hỏi về việc ai là người tạo ứng dụng và sử dụng bộ chuyển đổi nào. Chỉ định google-hangouts-chat cho trình chuyển đổi.

Ngoài ra, bạn có thể cài đặt riêng bộ chuyển đổi bằng lệnh sau:

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

Trong Hubot, hành vi thực tế của ứng dụng được triển khai bằng cách sử dụng tập lệnh. Hubot đi kèm với một tập lệnh mẫu mà bạn có thể dùng để kiểm thử. Sau khi thiết lập xong, bạn có thể tuỳ chỉnh và thêm tập lệnh của riêng mình để triển khai hành vi ứng dụng mong muốn.

Định cấu hình các tùy chọn cho bộ chuyển đổi của Google Chat

Các tùy chọn được chuyển đến bộ chuyển đổi trong Google Chat bằng cách sử dụng các biến môi trường.

Tài khoản dịch vụ

Để sử dụng trình chuyển đổi, bạn cần thiết lập tài khoản dịch vụ cho ứng dụng của mình. Làm theo hướng dẫn Sử dụng tài khoản dịch vụ để tạo tài khoản dịch vụ và tải tệp JSON chứa khoá của bạn xuống. Sau đó, đặt đường dẫn đến khoá của bạn trong biến môi trường:

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

Tùy chọn HTTP

Bạn không cần thêm cấu hình để chạy bộ chuyển đổi ở chế độ HTTP. Bộ chuyển đổi này sử dụng máy chủ Express của Hubot, chạy trên cổng 8080 theo mặc định. Để thay đổi cổng, bạn cần đặt biến môi trường PORT:

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

Tùy chọn Cloud Pub/Sub

Xem phần Thiết lập điểm cuối Pub/Sub để thiết lập dự án GCP, chủ đề Cloud Pub/Sub, gói thuê bao và tài khoản dịch vụ mà ứng dụng của bạn sử dụng. Bỏ qua mã mẫu trong đường liên kết; trong đoạn dưới đây, bạn sẽ tạo một ứng dụng Hubot bằng bộ chuyển đổi Google Chat.

Để sử dụng bộ chuyển đổi của Google Chat ở chế độ Pub/Sub, bạn cần đặt các tùy chọn sau:

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

Chạy cục bộ

Để chạy phiên bản Hubot cục bộ, hãy chạy lệnh tương ứng từ thư mục myhubot:

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

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

Thông báo sau sẽ xuất hiện trong bảng điều khiển nếu Trình chuyển đổi Google Chat Hubot đã được khởi chạy thành công:

Hangouts Chat adapter initialized successfully

Tuỳ thuộc vào việc bạn đã định cấu hình bộ chuyển đổi HTTP hay bộ chuyển đổi Cloud Pub/Sub, thông tin liên quan khác cũng có thể xuất hiện trên màn hình.

Triển khai trong AppEngine

Làm theo hướng dẫn trong AppEngine Quickstart để thiết lập dự án GCP và môi trường phát triển.

Sau khi được thiết lập, hãy làm theo các bước bên dưới để định cấu hình và triển khai bản sao Hubot trong AppEngine.

Tạo app.yaml

Trước tiên, hãy tạo một tệp app.yaml trong thư mục Hubot của bạn. Nội dung sẽ giống với ví dụ sau:

runtime: nodejs8
env_variables:
  PORT: 8080
  

Định cấu hình môi trường

Tiếp theo, hãy xem hướng dẫn trên trang này để định cấu hình các biến môi trường.

Tạo package.json

Cuối cùng, hãy tạo một tệp package.json chỉ định phiên bản button.js và thuộc tính tập lệnh dùng để chạy ứng dụng.

  • Chỉ định phiên bản Node.js mà bạn muốn sử dụng với thuộc tính engines trong các tệp package.json.
  • AppEngine sử dụng npm start để khởi động ứng dụng của bạn. Thiết lập thuộc tính scripts trong package.json của bạn để định cấu hình npm start để gọi 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

Phát hành trong Google Chat

Làm theo hướng dẫn trong trang Phát hành ứng dụng để phát hành ứng dụng trong Google Chat qua Google Cloud Console. Định cấu hình điểm cuối thích hợp (HTTP hoặc Cloud Pub/Sub) trong trang cấu hình ứng dụng. Nếu đã tạo một dự án GCP ở bước trước để triển khai bản sao Hubot trong AppEngine, bạn có thể sử dụng cùng một dự án GCP đó để phát hành ứng dụng của mình.

Thử nghiệm ứng dụng

Sau khi phát hành ứng dụng, bạn có thể thêm ứng dụng đó vào một không gian hoặc bắt đầu nhắn tin trực tiếp cho ứng dụng đó trong Google Chat. Ứng dụng của bạn phải phản hồi tin nhắn được gửi đến ứng dụng đó. Hubot có tập lệnh mẫu trong thư mục scripts. Hủy nhận xét mã trong tập lệnh mẫu phản hồi thông báo có chứa từ "huy hiệu" và khởi động lại ứng dụng.

Nếu đã đặt tên ứng dụng là "myhubot" và thêm ứng dụng vào không gian, bạn có thể nhắn tin như dưới đây:

@myhubot badger

Bạn sẽ thấy phản hồi sau từ ứng dụng của mình:

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

Giờ đây, bạn có thể tuỳ chỉnh hoặc thêm tập lệnh Hubot vào phiên bản Hubot để triển khai chức năng mong muốn cho ứng dụng của mình. Để xem các tập lệnh mẫu dành riêng cho Google Chat, hãy xem Kho lưu trữ GitHub của Google Chat Adapter.