เดฟสบาย!! เปลี่ยน Webhook / LIFF Endpoint URL ไม่พึ่ง Console ผ่าน Command line ด้วย LINE Helper CLI
ใครที่พัฒนา LIFF (LINE Front-end Framework) หรือ Messaging API บน Local กับ Ngrok ก็อาจจะเคยพบกับปัญหาที่ต้องไปนั่งเปลี่ยน URL Endpoint ใหม่ในทุก ๆ ครั้ง หลังจากการเปิดปิดเซสชันอยู่เรื่อย ๆ ในระหว่างการพัฒนาในกรณีที่ใช้แพลนฟรีอยู่ หรือกับบริการ Tunnel อื่น ๆ ที่ต้องนั่งไปเปลี่ยนอยู่เรื่อย ๆ เช่นกัน
วันนี้พร็อมท์มีตัวช่วยมาแนะนำ ซึ่งจะเป็น CLI (Command-line Interface) ที่ทำให้นักพัฒนาสามารถสร้างหรือเปลี่ยน LIFF URL ใน LIFF App หรือ Webhook URL ใน Messaging API ได้ง่าย ๆ ผ่าน Command-line โดยไม่ต้องเข้าไปเปลี่ยนใน LINE Developers Console แบบทุก ๆ ครั้งที่ผ่านมาก่อนหน้านี้ในเวลาพัฒนาใน Local Enviroment (localhost)
เครื่องมือนี้ชื่อว่า LINE Helper CLI สามารถใช้งานได้ง่าย ๆ ผ่านคำสั่ง npx หรือ pnpm dlx (pnpx) เพียงคำสั่งเดียว จากนั้นทำตามคำแนะนำบนหน้าจอ Terminal ได้เลย
วิธีการใช้งาน LINE Helper CLI
npx line-helper update
หลังจากรันคำสั่งด้านบนแล้ว CLI จะมีการสอบถามถึง Channel ID และ Channel Secret ของแชนเนลที่ต้องการใช้งาน สามารถใช้ได้ทั้ง LINE Login สำหรับการจัดการ LIFF และ LINE Messaging API สำหรับการจัดการ Webhook ค้นหาได้จาก LINE Developers Console ในแชนเนลนั้น ๆ
ปล. Channel ID และ Channel Secret จะถูกใช้เพื่อสร้าง Stateless Channel Access Token ขึ้นมา สามารถสร้างได้ไม่มีจำนวนจำกัด จึงไม่ต้องกังวลว่าโปรแกรมนี้อาจจะไปใช้โควตาการสร้าง Token ในแบบอื่น ๆ (Short-lived หรือ Long-lived)
การตั้งค่า LIFF
หากข้อมูล Channel ID และ Channel Secret มาจากแชนเนล LINE Login ตัว CLI จะทำการแสดงรายชื่อ LIFF App ที่เคยสร้างทั้งหมดมาแสดง โดยสามารถเลือกและทำการผูกกับโปรเจกต์ได้โดยตรง หรือจะสร้าง LIFF App ขึ้นมาใหม่บน Command line ก็ได้เช่นกัน
จากนั้นสามารถอัปเดต URL Endpoint ของ LIFF App ที่เลือกได้ทันทีจาก Command line
การตั้งค่า Messaging API Webhook
แต่ถ้า Channel ID และ Channel Secret มาจากแชนเนล LINE Messaging API ตัว CLI จะสอบถามเพื่ออัปเดต URL ของ Webhook เลย
พิเศษ!! สำหรับสาวก Ngrok
ในขั้นตอนอัปเดต URL ของทั้ง LIFF URL Endpoint และ Webhook URL จะสามารถเลือกบริการ Tunnel ที่ใช้ได้ สำหรับผู้ใช้ Ngrok นั้น CLI จะทำการตรวจสอบ URL ของ Ngrok ให้สามารถเลือกเปลี่ยนได้เลย ไม่ต้องไปก็อปมาจากไหนให้ว้าวุ่น!!
เพียงเท่านี้ก็จะสามารถอัปเดต URL ของ LIFF Endpoint หรือ Webhook ได้แล้ว
หลังจากตั้งค่าเสร็จแล้ว จะมี 1 ไฟล์ที่โผล่ขึ้นมาในโปรเจกต์ของเรา .liffrc.json ซึ่งจะเป็นไฟล์ที่เก็บ Credentials ทั้งหมดที่ใช้ในโปรแกรม อาทิ Channel ID และ Channel Secret ไม่แนะนำให้ Commit ขึ้นไปบน Git หรือ Version Control ต่าง ๆ โดยที่โปรแกรมมีการอัปเดต .gitignore ไว้ให้เรียบร้อยแล้ว (หากมีไฟล์ .liffrc.json แล้ว ครั้งต่อไปจะไม่มีการถาม 2 ค่าดังกล่าวอีก เพื่อความสะดวกสบาย)
หมายเหตุ: หากไม่ต้องการบันทึก Credentials ต่าง ๆ ไว้ในโปรเจกต์ หรืออัปเดตจากนอกโปรเจกต์ สามารถเพิ่มตัวเลือก -no ไปด้านหลังคำสั่งได้
npx line-helper update -no
ใครสนใจสามารถดู Source Code ได้ที่ iamprompt/liff-helper-cli หรือถ้าใครอยากทดลองใช้สามารถทำตามวิธีด้านบนได้เลย แต่หากเจอบั๊กหรือมีคำแนะนำสามารถทิ้งไว้ใน Issue ได้เลยนะคร้าบบบบ~~~