Tạo Slack Bot đơn giản với NodeJs và Botkit

Đối với các bạn developer chắc không còn xa lạ gì với Slack. Còn đối với bạn nào chưa biết Slack thì tôi xin 30 giây quảng cáo.

Slack là một công cụ chat, giúp trao đổi thông tin và cập nhập công việc trở nên dễ dàng hơn bao giờ hết.Chắc hẳn sẽ có nhiều bạn thắc mắc, dùng Skype là quá đủ rồi còn gì, vậy lý do gì khiến Slack tuyệt vời hơn Skype. Có thể tóm tắt như sau, Slack ổn định hơn Skype, hỗ trợ tốt hơn trên mobile, notification thông minh hơn, và trên hết, hỗ trợ tích hợp tốt hơn so với các công cụ khác như Trello, Github,… còn nếu bạn vẫn thắc mắc về Trello và Github là gì thì một là search google, hai là xem ở đây.

Vậy Slack Bot là gì? Nghe cách gọi cũng có thể dễ dàng đoán được nó là một con bot sử dụng trong Slack, khi ta gọi nó với một lệnh cụ thể thì có sẽ thực thi một công việc nào đó cho ta.

Giới thiệu như thế coi như là đủ. Giờ bắt đầu nào.

Đầu tiên, hãy chắn chắn máy tính của bạn đã cài môi trường dành cho NodeJs. Nếu chưa thì hãy vào đây để tải về và cài đặt nhé.

Sau khi chắc chắn máy tính của bạn đã cài đặt môi trường dành cho NodeJs. Thì chúng ra sẽ sang bước tiếp theo, tạo và cài đặt project.

Hãy tạo thư mục để chứa project của bạn, giả sử tên là slackbot. Trong thư mục slackbot, trong giao diện terminal, bạn nhập như sau.

Hãy điền thông tin hoặc bỏ qua nếu bạn cảm thấy không cần thiết, tôi nghĩ, các bạn nên để tất cả là mặc định, chúng ta có thể sửa sau, sau đó npm sẽ sinh ra file package.json. File này sẽ chứa thông tin về project của bạn.

Sau khi đã có file package.json, các bạn hãy cài đặt gói botkit, về botkit và những document liên quan các bạn có thể tham khảo ở đây. Việc này có thể mô tả giống như là các bạn include một thư viện vào trong project của mình vậy. Trong giao diện terminal các bạn nhập như sau.

Các bạn có thể bỏ –save ra khỏi câu lệnh mà vẫn không hề xảy ra bất kì lỗi gì, chúng ta có thể hiểu –save ở đây có ý nghĩa là nó sẽ lưu dependency vào trong file package.json để nếu như bạn có lấy lại code và build lại trên một môi trường mới thì npm sẽ tự động tải về những dependencies được lưu trong file package.json.

Sau khi đã cài đặt gói botkit xong, chúng ta tạo file index.js, đây là file mà chúng ta sẽ code cho con bot. Mở file index.js ra và chuẩn bị code nhé.

Đầu tiên, các bạn khởi tạo bot bằng botkit như sau.

Như các bạn có thể thấy, trong đoạn code trên, tôi khởi tạo một slackbot với thuộc tính debug là true, tại sao? Vì tôi muốn xem log đó mà. Bản chất con bot là sử dụng Real Time Messaging API của Slack. Con bot sẽ connect với API của Slack thông qua API Token, dưới đây tôi sẽ hướng dẫn các bạn lấy API Token.

Để lấy API Token, các phải phải tạo bot trên hệ thống của Slack thông qua link sau https://my.slack.com/services/new/bot và làm theo hướng dẫn. Sau đó bạn sẽ thấy API Token như hình dưới.

Screen Shot 2016-04-10 at 4.png

Như vậy là các bạn đã khởi tạo xong con bot. Để chạy thử, trong terminal các bạn nhập lệnh như sau.

Tiếp theo chúng ta cần thêm những hành vi cho con bot. Tôi dự dịnh sẽ tạo ra một con bot nói chuyện tào lao bẩn bựa, mục đích giải trí thôi nhé. Cụ thể con bot này sẽ chào lại khi ta nói xin chào, nếu nó biết tên ta rồi thì nó sẽ chào với đúng tên của ta. Ngoài ra, ta có thể hỏi tên của nó, rồi cho nó biết nó nên gọi ta như thế nào.

Đầu tiên là phần chào hỏi. Mở file index.js lên nào.

Như các bạn có thể thấy, tôi đưa ra ngữ cảnh là khi con bot thấy nó được nhận một message trực tiếp, hay được mention với nội dung “xin chào”, hay “chào mày” thì nó sẽ phản hồi bằng việc kiểm tra xem nó đã biết user đó hay chưa, nếu rồi thì nó sẽ gửi một message “ờ chào …!” nếu chưa thì message đơn giản hơn chỉ là “chào!”

Tiếp theo sẽ là tiết mục cho con bot biết nên gọi ta như thế nào.

Như các bạn thấy, để cho con bot biết nên gọi ta như thế nào, ta sẽ nói với nó “mày có thể gọi tao là …”, trong phần xử lý ta sẽ lưu tên mà user gõ lên tương ứng với id của user. Sau đó con bot sẽ trả lời “ờ, từ giờ tao sẽ gọi mày là …”.

Tương tự tôi đã làm thêm một số thứ và cuối cùng tôi có được đoạn hội thoại với con bot như sau.

Screen Shot 2016-04-10 at 3.18.01 PM.png

Thú vị đúng không nào, qua bài viết này hy vọng các bạn đã hiểu những điều cơ bản nhất về sử dụng botkit để tạo Slack bot. Chúc các bạn vui với việc tạo Slack bot và tạo ra được nhiều những con bot hữu ích hơn những gì mà tôi đã làm.

Source code trong bài các bạn có thể tìm thấy ở https://github.com/codeaholicguy/nodejs-slack-bot

Hẹn gặp lại các bạn trong những bài viết tiếp theo.

Have fun!

ITZone via codealohic

Chia sẻ bài viết ngay