ส่งข้อความไปยัง Slack ด้วย cURL
Slack ให้คุณส่งข้อความผ่าน บริการ Webhooks ได้
สร้าง webhook สำหรับ channel ไหนก็ได้ แล้วคุณก็จะส่ง notification ด้วย curl ได้เลย
$ curl -X POST -H 'Content-type: application/json' --data '{"text": "Something important"}' https://hooks.slack.com/services/YOUR/TOKENIZED/URL
ตั้งค่า Incoming Webhooks
incoming webhook เป็นวิธีง่าย ๆ ในการโพสต์ข้อความจากแอปเข้าไปใน Slack ในการตั้งค่า incoming webhook คุณต้องสร้าง Slack app แล้วเปิดใช้งาน incoming webhooks ในการตั้งค่าของแอป นี่คือขั้นตอนการตั้งค่า incoming webhooks ทีละขั้น:
- เข้าสู่ระบบ Slack แล้วไปที่หน้าหลักของ Slack API
- คลิกปุ่ม “Create an app” แล้วเลือก “From scratch”
- ใส่ชื่อแอป แล้วเลือก workspace ที่ต้องการ deploy
- คลิกปุ่ม “Create App”
- ในหน้าตั้งค่าของแอป ไปที่ส่วน “Features” แล้วคลิก “Incoming Webhooks”
- เปิดสวิตช์เพื่อเปิดใช้งาน incoming webhooks
- คลิกปุ่ม “Add New Webhook to Workspace”
- เลือก channel ที่คุณต้องการโพสต์ข้อความ แล้วคลิก “Allow”
ทำตามขั้นตอนเหล่านี้ คุณก็จะสร้าง Slack app และตั้งค่า incoming webhook เพื่อเริ่มส่งข้อความไปยัง channel ที่เลือกไว้ได้
สร้าง Payload
ในการส่งข้อความผ่าน incoming webhook คุณต้องสร้าง payload ที่มีข้อความและตัวเลือกบางอย่าง วิธีสร้าง payload มีดังนี้:
- กำหนด content type ของ payload สำหรับ incoming webhooks แล้ว content type จะเป็น “application/json” เสมอ
- สร้าง JSON object ที่มีข้อความและตัวเลือกเพิ่มเติมที่คุณต้องการ ตัวอย่างเช่น: 1.
{ "text": "Hello, Slack!", "username": "WebhookBot", "icon_emoji": ":ghost:" }
- ใช้เครื่องมืออย่าง curl ส่ง payload ไปยัง URL ของ incoming webhook
ถ้าจัดรูปแบบ JSON payload ถูกต้อง ข้อความก็จะส่งเข้า Slack ผ่าน incoming webhook ได้ไม่มีปัญหา
ส่งข้อความด้วย cURL
cURL คือเครื่องมือ command-line ที่คุณใช้ส่งข้อความไปยัง Slack ผ่าน incoming webhook ได้ นี่คือตัวอย่างการใช้ cURL ส่งข้อความ:
- เปิด terminal แล้วไปยัง Directory ที่คุณต้องการส่งข้อความ
- สร้างไฟล์นามสกุล .json ที่มี payload อยู่ข้างใน ตัวอย่างเช่น สร้างไฟล์ชื่อ message.json ที่มีเนื้อหาดังนี้: 1.
{ "text": "Hello, World!" }
- ใช้คำสั่ง cURL ส่ง payload ไปยัง URL ของ incoming webhook: 1.
curl -X POST -H 'Content-Type: application/json' --data @message.json https://hooks.slack.com/services/YOUR/TOKENIZED/URL
ทำตามขั้นตอนเหล่านี้ คุณก็จะใช้ cURL ส่งข้อความไปยัง Slack ผ่าน incoming webhook ได้
การทดสอบและแก้ปัญหา
เมื่อทดสอบและแก้ปัญหา incoming webhooks สิ่งสำคัญคือต้องตรวจสอบ HTTP status code และ response body เพื่อหาข้อผิดพลาด นี่คือ error ที่พบได้บ่อย:
- HTTP 400 Bad Request: payload ผิดรูปแบบหรือขาดฟิลด์ที่จำเป็น
- HTTP 403 Forbidden: URL ของ incoming webhook ไม่ถูกต้องหรือใช้งานไม่ได้แล้ว
- HTTP 404 Not Found: ไม่มี channel หรือ workspace นั้นอยู่
เวลาเจอปัญหา ลองใช้ cURL ส่ง payload ทดสอบแล้วดู response ที่ได้กลับมา หรือเปิดเอกสาร Slack API ดูรายละเอียดเรื่อง error code และวิธีแก้ปัญหา
การเชื่อมต่อ Slack ขั้นสูง
incoming webhooks เป็นแค่วิธีหนึ่งในการเชื่อมต่อกับ Slack ถ้าต้องการมากกว่านั้น ใช้ Slack API ส่งและรับข้อความ สร้าง bot ของตัวเอง และอื่น ๆ ได้อีก ตัวอย่างฟีเจอร์ขั้นสูงมีดังนี้:
- Web API: Slack Web API ให้คุณส่งและรับข้อความ สร้าง bot ของตัวเอง และอื่น ๆ
- Events API: Slack Events API ให้คุณรับอัปเดตแบบ real-time ของเหตุการณ์ต่าง ๆ เช่น ข้อความ reaction และอื่น ๆ
- Botkit: Botkit คือ framework สำหรับสร้าง bot ของตัวเองบน Slack
ฟีเจอร์ขั้นสูงเหล่านี้ช่วยให้คุณเชื่อมต่อกับ Slack ได้ซับซ้อนขึ้น ทำ workflow อัตโนมัติ ทำให้ผู้ใช้ใช้งานได้ดีขึ้น และอีกหลายอย่าง