การสร้างบอท Discord ตอนที่ 4 รันบอท 24 ชม บน Heroku


ในตอนที่ 3 เราได้เรียนรู้การสร้างบอท Discord ในรูปแบบคำสั่ง ซึ่งการที่จะให้บอททำงาตลอดเราก็ต้องเปิดคอมไว้ตลอด มันก็จะเปลืองไฟนิดๆ ถ้าใครไม่มี Server ของตัวเอง บล็อคนี้เลยจะมาแนะนำการรันบอทบน Heroku ที่เป็นเว็บโอสติ้ง ให้เราสร้างเว็บแอพได้ฟรี

ขั้นตอนแรก ถ้าใครยังไม่มีบัญชี Heroku ให้ไปสมัครให้เรียบร้อยก่อน ลิงค์สมัครคลิกตรงนี้ สำหรับใครที่สมัครแล้ว เข้าสู่ระบบแล้วไปเจอกันข้างในเลยครับ

สร้างแอพพลิเคชัน

เราจะสร้างแอพสำหรับรันบอทดิสคอส กดที่ปุ่ม New แล้วเลือก Create new app

Discord Bot - Heroku Dashboard

ตั้งชื่อ app name จากนั้นกดที่ปุ่ม Create app

เราก็จะได้แอพหรือโฮสเอาไว้รันบอท

Discord Bot - Create Heroku app or heroku Host

Procfile

ก่อนที่เราจะส่งบอทที่เราสร้างไว้ขึ้นไปบน Heroku เราจะต้องบอกด้วยว่าจะให้เรารันบอทแบบไหน โดยการสร้างไฟล์ชื่อ Procfile (ไฟล์ไม่มีนามสกุล)

ให้เรากลับไปที่ VS Code แล้วทำการสร้างไฟล์ใหม่ ตั้งชื่อว่า Procfile แล้วเขียนคำสั่งตามโค้ดด้านล่าง

ตรง command_bot.py ให้เปลี่ยนเป็นชื่อไฟล์บอทของตัวเองนะ ใครใช้ชื่อเหมือนในนี้ก็ตามได้เลย ใครใช้ชื่อไม่เหมือนกันก็เช็คดูดีดีนะครับ

worker: python command_bot.py

Requirements.txt

สร้างไฟล์ที่ชื่อว่า requirements.txt แล้วใส่ชื่อ ไลบรารี่ ของ Python เพื่อให้ Heroku ติดตั้งไลบรารี่เมื่อทำการอัพโหลด

Discord Bot - Create requirements file

Deploy Discord Bot ด้วย Heroku Git

ถ้าใครยังไม่ได้ติดตั้งโปรแกรม Heroku CLI ให้ทำการดาวน์โหลดและติดตั้งให้เรียบร้อยก่อน ดาวน์โหลด Heroku CLI คลิกตรงนี้

คำสั่งที่เราต้องใช้ในการอัพโหลดขึ้นไปยังโฮส จะอยู่ที่หน้า Deploy ในเว็บ Heroku

Discord Bot - Heroku deploy command

มาเริ่มกันเลย กลับไปที่ VS Code แล้วเปิด Terminal ขึ้นมา พิมพ์คำสั่งตามนี้

  • heroku login
  • git init
  • heroku git:remote -a <ชื่อของแอพ>
  • git add .
  • git commit -am “ใส่ข้อความอะไรก็ได้”
  • git push heroku master

ถ้าทำตามบล็อตนี้ไม่น่าจะมีเออเร่อใดๆ เมื่ออัพโหลดเสร็จแล้ว เราจะไปสั่งให้บอททำงาน

ไปที่แท็บ Resources จากนั้นกดที่ปุ่มรูปดินสอ แล้วสไลด์ปุ่ม แล้วกด Confirm

Discord Bot - Resources page

บอทก็จะทำงานบน Server ของ Heroku

จบคลอสวิชาการสร้างบอทดิสคอส 101 ซึ่งเป็นพื้นฐาน และสาธิตการทำบอท ในการใช้งานจริงให้ศึกษาเพิ่มเติมกันด้วยน่ะครับ