Ở phần trước trước chúng ta đã tìm hiểu về webhooks cũng như cách thức hoạt động của một webhook. Để củng cố thêm kiến thức về chủ đề này, phần 2 mình sẽ giới thiệu cách bạn cài đặt 1 webhook với một trường hợp thực tế, gửi một thông báo về Discord khi tạo một issue trên github.
Tại sao mình chọn Discord thay vì Slack:
- Đơn giản, dễ thực hiện vì Discord đã build sẵn function để gửi tin nhắn về Discord
- Với slack, hiện tại mọi người hay sử dụng Github app. Việc này không giúp chúng ta có cái nhìn rõ hơn về webhooks
- Docucments discord về việc sử dụng webhooks rất dễ hiểu
Dưới đây là một số dịch vụ có thể sử dụng webhooks của discord và một số dịch vụ không thể sử dụng
1. Workflow
Ví dụ khi chúng ta muốn gửi một thông báo về discord khi tạo một issue trên github. Workflow áp dụng webhooks sẽ như sau
- Ở github, trigger sự kiện tạo issue. Gắn URL - địa chỉ cần push data từ github
- Discord function: Nơi tiếp nhận data và xử lí logic gửi tin nhắn về discord
- Discord Channel: Nơi nhận và hiển thị tin nhắn
2. Chuẩn bị từ discord
Nếu bạn chưa có tài khoản discord, bạn có thể đăng kí tài khoản trước sau đó tạo một channel theo hướng dẫn tại đây. Sau đó bạn đăng kí một kênh mới để nhận thông báo, ở đây mình đặt tên là #github-notification
Tiến hành đặt tên cho channel của mình
Sau khi đã tạo được channel, chọn vào biểu tượng bánh răng để Edit Channel
Chọn mục Integrations, sau đó ấn copy Webhook URL để lấy public URL, cái mà mà sẽ gắn ở github ở bước tiếp theo
3. Chuẩn bị từ github
Ở phía github các bạn tiến hành tạo repository để lấy quyền Setting
Sao đó vào mục webhooks
Thêm webhooks
Ở bước tiếp theo bạn cần điền một số thông tin:
- Payload URL: URL mà bạn đã copy từ Discord ở bước bên tên
- Content type:
application/json
- Secret: Có thể bỏ trống hoặc điền bất kì
- SSL verification:
Enable
Một bước vô cùng quan trọng ở đây là khi điền thông tin Payload URL, hãy bổ sung /github ở cuối URL
Bởi vì đối với trường hợp mình chỉ muốn bắn thông báo về trong trường hợp tạo issue mới. Nên ở mục which events would you like to trigger this webhook
. Mình sẽ chọn option số 3 Let me select individual events
. Sau đó tích vào ô tick box Issues
Sau khi tiến hành thêm webhooks. Bạn có thể tạo một issue mới trên github
Và thế là sau khi tạo issue thành công, phía Discord sẽ nhận một thông báo như sau
4. Tổng kết
Như vậy là mình đã hướng dẫn các bạn cách để cài đặt gửi một thông báo về discord thông qua webhooks, case study đơn giản trên giúp chúng ta hiểu hơn về cách hoạt động của webhooks.
Tham khảo: Webhooks — The Definitive Guide, Intro to Webhooks
Đọc những bài viết khác của tác giả: Chillwithsu.com
Donate cho tác giả : Buy me a coffee
Chúc các bạn code vui, khỏe, giải trí !!!