OOZOU
ติดต่อเรา
กลับไปหน้า TIL
shell

ส่งข้อความไปยัง Slack ด้วย cURL

13 ตุลาคม 2563

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 ทีละขั้น:

  1. เข้าสู่ระบบบัญชี Slack ของคุณ แล้วไปที่หน้าหลักของ Slack API
  2. คลิกปุ่ม “Create an app” แล้วเลือก “From scratch”
  3. ใส่ชื่อแอปของคุณ แล้วเลือก workspace ที่ต้องการ deploy
  4. คลิกปุ่ม “Create App”
  5. ในหน้าตั้งค่าของแอป ไปที่ส่วน “Features” แล้วคลิก “Incoming Webhooks”
  6. เปิดสวิตช์เพื่อเปิดใช้งาน incoming webhooks
  7. คลิกปุ่ม “Add New Webhook to Workspace”
  8. เลือก channel ที่คุณต้องการโพสต์ข้อความ แล้วคลิก “Allow”

ทำตามขั้นตอนเหล่านี้ คุณก็จะสร้าง Slack app และตั้งค่า incoming webhook เพื่อเริ่มส่งข้อความไปยัง channel ที่เลือกไว้ได้

สร้าง Payload

ในการส่งข้อความผ่าน incoming webhook คุณต้องสร้าง payload ที่มีข้อความและตัวเลือกบางอย่าง วิธีสร้าง payload มีดังนี้:

  1. กำหนด content type ของ payload สำหรับ incoming webhooks แล้ว content type จะเป็น “application/json” เสมอ
  2. สร้าง JSON object ที่มีข้อความและตัวเลือกเพิ่มเติมที่คุณต้องการ ตัวอย่างเช่น: 1.
{ "text": "Hello, Slack!", "username": "WebhookBot", "icon_emoji": ":ghost:" }
  1. ใช้เครื่องมืออย่าง curl ส่ง payload ไปยัง URL ของ incoming webhook

การสร้าง JSON payload ในรูปแบบที่ถูกต้องช่วยให้มั่นใจได้ว่าข้อความของคุณจะถูกส่งไปยัง Slack ผ่าน incoming webhook อย่างถูกต้อง

ส่งข้อความด้วย cURL

cURL คือเครื่องมือ command-line ที่คุณใช้ส่งข้อความไปยัง Slack ผ่าน incoming webhook ได้ นี่คือตัวอย่างการใช้ cURL ส่งข้อความ:

  1. เปิด terminal แล้วไปยังไดเรกทอรีที่คุณต้องการส่งข้อความ
  2. สร้างไฟล์นามสกุล .json ที่มี payload อยู่ข้างใน ตัวอย่างเช่น สร้างไฟล์ชื่อ message.json ที่มีเนื้อหาดังนี้: 1.
{ "text": "Hello, World!" }
  1. ใช้คำสั่ง 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 ของตัวเอง และอื่น ๆ ได้ นี่คือฟีเจอร์การเชื่อมต่อ Slack ขั้นสูงบางส่วน:

  • Web API: Slack Web API ให้คุณส่งและรับข้อความ สร้าง bot ของตัวเอง และอื่น ๆ
  • Events API: Slack Events API ให้คุณรับอัปเดตแบบ real-time ของเหตุการณ์ต่าง ๆ เช่น ข้อความ reaction และอื่น ๆ
  • Botkit: Botkit คือ framework สำหรับสร้าง bot ของตัวเองบน Slack

การใช้ฟีเจอร์ขั้นสูงเหล่านี้ช่วยให้คุณสร้างการเชื่อมต่อกับ Slack ที่ซับซ้อนยิ่งขึ้น ทำ workflow ให้เป็นอัตโนมัติ ยกระดับประสบการณ์ผู้ใช้ และอื่น ๆ ได้

เพิ่มเติมเกี่ยวกับ shell

shell8 ธันวาคม 2563

รันคำสั่งแบบ incognito/ส่วนตัวสำหรับ Bash และ Zsh

แค่ใส่ space ไว้หน้าคำสั่ง คำสั่งนั้นก็จะไม่ถูกบันทึกลง ~/.bash\_history เช่น qrencode -o out.png "Some secret text"

shell22 ตุลาคม 2563

อัปเกรดฐานข้อมูล postgres ด้วย homebrew

การอัปเกรด postgres ทำได้โดยรัน

shell13 ตุลาคม 2563

คัดลอกไฟล์ด้วย Amazon AWS S3 CLI พร้อมกำหนดสิทธิ์

เปิด term (หรือโปรแกรมที่คล้ายกัน) แล้ววางคำสั่งต่อไปนี้:

มีโปรเจกต์ในใจ?

เรายินดีรับฟังสิ่งที่คุณกำลังสร้าง

เริ่มต้นสนทนาhello@oozou.com
OOZOU Logo

กรุงเทพฯ · สิงคโปร์ · ฮ่องกง

X
Facebook
Instagram
LinkedIn

บริการ

  • พัฒนาเว็บ
  • เอเจนต์ AI และ Generative AI
  • พัฒนาแอปมือถือ
  • วิศวกรรมและวิเคราะห์ข้อมูล
  • UI/UX และการออกแบบผลิตภัณฑ์
  • การเปลี่ยนผ่านสู่ดิจิทัล

บริษัท

  • เกี่ยวกับเรา
  • ร่วมงานกับเรา
  • บล็อก
  • กรณีศึกษา
  • Today I Learned
  • ติดต่อเรา

เพิ่มเติม

  • อุตสาหกรรม
  • เครือข่ายพันธมิตร
© 2026 OOZOU สงวนลิขสิทธิ์
นโยบายความเป็นส่วนตัวจรรยาบรรณนโยบาย ABAC