ลองเขียน Discord Webhook แจ้งเตือนการสร้าง Pull Request ใน Bitbucket ด้วย Cloud Functions for Firebase กันดีกว่า
ในช่วงโควิด 19 ระบาดนี้หลาย ๆ ที่เริ่มมีการให้ทำงานที่บ้านมากขึ้น Discord เป็นหนึ่งแพล็ตฟอร์มให้บริการการสื่อสารที่สามารถทำได้ทั้ง แชทผ่านข้อความ พูดคุยกันด้วยเสียง หรือส่งไฟล์ให้แก่กันได้ ความสามาารถอย่างหนึ่งที่ Discord สามารถทำได้คือ Webhook ซึ่งเป็นการสั่งให้ส่งข้อความเข้าไปยัง Discord ได้ ในที่นี้เมื่อรวมกับความสามารถของ Webhook จาก Bitbucket เมื่อมี Event เกิดขึ้นที่ Bitbucket เราก็จะสามารถส่งข้อความแจ้งเตือนไปที่ Discord ได้
ขั้นตอนในการพัฒนา
- สร้าง Webhook ใน Discord
- ติดตั้ง Cloud Functions for Firebase
- สร้างฟังก์ชัน Cloud Functions สำหรับ Webhook
1.สร้าง Webhook ใน Discord
คลิกขวาที่ Server → Server Settings → Webhooks → Create Webhook
ตั้งชื่อ Webhook เลือก Channel และใส่รูปไอคอน สำหรับ Webhook
จากนั้นให้คัดลอก Webhook URL ไว้สำหรับใช้งาน
2. ติดตั้ง Cloud Functions for Firebase
ก่อนอื่นถ้ายังไม่ได้สร้าง Firebase Project สามารถทำตามขั้นตอนนี้ได้เลยครับ
จากนั้นก็เริ่มสร้างโปรเจคได้ โดยเราจะสร้าง directory เปล่า ๆ มาไว้ก่อน
mkdir discord-webhook
cd discord-webhook
จากนั้นเริ่ม init Cloud Functions for firebase ได้เลยครับ
firebase init functions
จากนั้นก็เลือกโปรเจคตามที่ต้องการเลยครับ
จากนั้นมีคำถามอีก 3 ข้อคือ
- จะใช้ภาษาไหนในการเขียน ระหว่าง TypeScript กับ JavaScript (ในที่นี้ผมใช้ JavaScript)
- จะเปิดใช้งาน ESLint ไหม (ผมเลือก No)
- จะติดตั้ง npm dependencies เลยหรือไม่ (เลือก Yes ไปเลย)
จากนั้นรอสักครู่จนเห็นข้อความเหมือนด้านล่างก็แสดงว่าเรียบร้อยแล้ว
โดยโครงสร้างโปรเจกต์ก็จะเป็นไปหน้าตาประมาณนี้ ซึ่งปกติเราจะเขียน Code กันในไฟล์ index.js กัน
3.สร้างฟังก์ชัน Cloud Functions สำหรับ Webhook
ขั้นตอนนี้เราจะใช้ข้อมูลที่ส่งมาโดย Webhook ของ Bitbucket เพื่อจะส่งต่อไปยัง Webhook ของ Discord ซึ่งจะใช้รูปแบบดังนี้
เพื่อให้ได้ข้อความในรูปแบบด้านล่างนี้
ติดตั้ง dependencies เพิ่ม
npm install request --save
npm install request-promise --save
จากนั้นแก้ไขโค้ดดังด้านล่างนี้
จากนั้นก็ deploy เลยยยยยย
firebase deploy --only functions
จากได้ Url ในรูปแบบ
https://<project-name>.cloudfunctions.net/bitbucket
จากนั้นก็เอา Url ที่ได้ไปใส่ใน Bitbucket Webhook แล้วลองสร้าง Pull Request หรือ Update ลองดูได้เลย
เพียงเท่านี้เราก็จะได้ตัวแจ้งเตือนเวลามีคนสร้างหรืออนุมัติ Pull Request ให้เราแล้ว หากว่าบทความนี้เป็นประโยชน์ก็ช่วยกันกดปรบมือให้หน่อยนะครับ หรือถ้ามีอะไรแนะนำ ติชม ก็บอกได้เลยจักเป็นพระคุณอย่างยิ่งครับ