Slack command & Laravel phần 2: Tạo App Slack và Command

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.

  • Chọn “Create New App”
chọn create new app để thêm app slack
Chọn nút thêm 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
tạo app slack từ ban đầu - scratch
Chọn from scratch để làm từ đầu
  • Điền tên app và chọn workspace mà mình sẽ cài đặt app vào.
điền tên app slack và chọn workspace
Điền tên app và chọn workspace
  • 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.
thông tin app
Thông tin app
  • 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
Vị trí Oauth & Permission trên menu
Chọn OAth & Permissions để phân quyền bot
  • 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
Các quyền cần thiết cho bot
Các quyền cần thiết cho bot
  • 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.
install to workspace
Cài đặt app vào workspace

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.
Gõ lệnh /hello-khanh ở khung chat
Gõ lệnh ở khung chat
Phản hồi lệnh không thành công
Phản hồi thông báo không thành công

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.

Nguồn bài viết:

  1. Api Slack – Quick Start
  2. Slack Permission Scopes

Comments

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *