Ở phần trước mình đã nói về cách hoạt động của Slack command và hệ thống bên ngoài. Trong phần này mình sẽ hướng dẫn cách tạo App Slack, phân quyền cho bot, tạo và thử nghiệm command đầu tiên.
1. Tạo App Slack
App Slack là gì?
App Slack (hay ứng dụng Slack) là một ứng dụng tùy chỉnh, tích hợp với nền tảng Slack cũng như các ứng dụng bên ngoài để cung cấp chức năng và quy trình làm việc cụ thể cho từng tổ chức. Để sử dụng được Slash Command thì đầu tiên chúng ta phải tạo App Slack.
- Đầu tiên, mình sẽ truy cập vào: https://api.slack.com/apps
- Chọn “Create New App”

- Ta có thể chọn 1 trong 2 cách:
- From scratch: Tạo mới hoàn toàn. Ở đây mình sẽ dùng cách này
- From manifest: Dùng cấu hình YAML có sẵn. Mình có thể copy từ bot có sẵn và tạo theo cách này để tiết kiệm thời gian

- Điền tên app và chọn workspace mà mình sẽ cài đặt app vào.

- Sau khi tạo thành công thì các bạn sẽ nhìn thấy giao diện quản lý 1 app. Ở đây ta cần lưu ý phần Signing Secret sẽ được sử dụng để xác thực tính hợp lệ của dữ liệu khi gửi sang hệ thông khác.

- Vậy là mình đã tạo xong một App Slack, tiếp theo mình sẽ tạo và cài đặt quyền cho botđể có thể sử dụng Slack command.
2. Cài đặt quyền cho bot
- Để sử dụng Slack Command, ta cần phải cấp quyền cho bot, vì Slack command hoạt động thông qua bot.
- Từ giao diện quản lý App, ta chọn OAuth & Permissions, sau đó tìm đến phần Scopes => Bot Token Scopes

- Thêm các quyền cần thiết vào ở phần Add an OAuth Scope:
- Quyền chat:write cho phép bot gửi tin từ command
- Quyền commands để có thể sử dụng command “/” và shortcut ở workspace

- Giờ thì bot đã có thể đọc lệnh từ người dùng trong workspace và trả lời lại người dùng ở cả kênh chat và cả nhắn tin riêng (DM). Để sử dụng được thì mình chọn Install to < tên workspace>để cài bot này vào workspace của mình.

3. Tạo Slack command và thử nghiệm
- Giờ để tạo Slack Command, mình truy cập vào phần Slash commands từ menu của App, sau đó chọn Create New Command để tạo lệnh mới
- Điền các thông tin của lệnh vào, sau đó chọn Save để lưu
- Command: Lệnh sẽ gõ vào trong workspace để Slack gửi sang hệ thống khác, ở đây mình đặt lệnh là “/hello-khanh“
- Request URL: url của hệ thống nhận dữ liệu. Ở đây mình dùng url “https://demo.codecungkhanh.com/api/hello-khanh” để nhận dữ liệu. Các bạn lưu ý là url này phải ở dạng https
- Short Description: Mô tả lệnh
- Usage Hint: Hướng dẫn sử dụng lệnh, nếu lệnh mình có thêm các tham số cho text thì nên mô tả cách dùng ở đây.
- Để sử dụng các command vừa thêm, mình phải cài đặt lại app vào workspace để hệ thống cập nhật lệnh mới (để cài lại chúng ta vào Install App ở menu rồi chọn Reinstall to workspace).
- Giờ vào Slack khi mình gõ “/” sẽ hiện “/hello-khanh” cùng với mô tả của nó. Tuy nhiên, khi gửi tin thì hệ thống sẽ báo “dispatch_failed”, do request_url của mình chưa tạo & chưa xử lý phản hồi về cho Slack trong vòng 3s.


Vậy là chúng ta đã tạo được command đầu tiên và đưa vào workspace để sử dụng. Trong bài kế tiếp, mình sẽ hướng dẫn cách xử lý dữ liệu ở Laravel và phản hồi lại cho Slack để không còn thông báo lỗi “dispatch_failed” nữa.