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, npm và Trì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.