Send multiple images with Slack API
Slack Integration
Có một vài cách để chúng ta có thể implement tính năng gửi tin nhắn tới Slack, nhưng phổ biến nhất là:
- Sử dụng Slack Messaging API
- Sử dụng Slack Incoming Webhook
Trước giờ, trong các dự án, mình chủ yếu dùng Slack Incoming Webhook. Lý do là việc setup đơn giản, không cần lấy SLACK API TOKEN, chỉ cần lấy webhook URL và send POST request khi muốn gửi tin nhắn. Tuy nhiên, cách này có một nhược điểm là chỉ gửi được text message.
Tính năng mới của dự án yêu cầu gửi file đính kèm vào cùng tin nhắn, nên mình cần phải sử dụng Message API - file.upload
Tới đây thì có 1 vấn đề xảy ra: file.upload chỉ cho phép gửi từng file một, chứ không hỗ trợ gửi multiple files. :sad:
Sau khi search thử google, mình đã tìm được 1 giải pháp khá hay trên StackOverflow:
- Upload file sử dụng
file.upload
, nhưng không chỉ định channel post ảnh. Sau khi upload thành công thì lưu lại file permalink. - Upload lần lượt từng file, get list file permalinks.
- Sử dụng cú pháp Markdown, paste link của file lại:
<{permalink1_from_first_step}| ><{permalink2_from_first_step}| >
Lúc này, Slack sẽ autoload preview cho file từ URL mình đặt trong message. =))
Có một fact khá thú vị là python-slack-sdk đã implement trick này trong version v3.19.0, cho phép upload multiple files.