คำแนะนำ: วิธีสร้าง Telegram bot อย่างง่ายใน JS สำหรับผู้เริ่มต้นในการเขียนโปรแกรม

ฉันเริ่มดำดิ่งสู่โลกแห่งไอทีเมื่อสามสัปดาห์ก่อน เอาจริงๆ เมื่อสามสัปดาห์ที่แล้ว ฉันไม่เข้าใจไวยากรณ์ HTML ด้วยซ้ำ และการแนะนำภาษาการเขียนโปรแกรมของฉันจบลงด้วยหลักสูตรของโรงเรียนเกี่ยวกับ Pascal เมื่อ 10 ปีที่แล้ว อย่างไรก็ตาม ฉันตัดสินใจไปที่ค่ายไอที ซึ่งเด็กๆ จะสร้างบอทคงจะดี ฉันตัดสินใจว่ามันแทบจะไม่ยากขนาดนั้น

นี่เป็นการเริ่มต้นการเดินทางอันยาวนานซึ่งฉัน:

  • ปรับใช้เซิร์ฟเวอร์คลาวด์กับ Ubuntu
  • ลงทะเบียนบน GitHub
  • เรียนรู้ไวยากรณ์ JavaScript พื้นฐาน
  • อ่านบทความภาษาอังกฤษและรัสเซียมากมาย
  • ในที่สุดก็สร้างบอท
  • ในที่สุดฉันก็เขียนบทความนี้

ผลลัพธ์สุดท้ายมีลักษณะดังนี้:

คำแนะนำ: วิธีสร้าง Telegram bot อย่างง่ายใน JS สำหรับผู้เริ่มต้นในการเขียนโปรแกรม

ฉันจะบอกทันทีว่านี่เป็นบทความสำหรับผู้เริ่มต้น - เพียงเพื่อทำความเข้าใจวิธีทำสิ่งพื้นฐานตั้งแต่เริ่มต้น

และสำหรับโปรแกรมเมอร์ขั้นสูงเพียงเพื่อทำให้พวกเขาหัวเราะเล็กน้อย

1. จะเขียนโค้ดใน JS ได้อย่างไร?

ฉันเข้าใจว่าอย่างน้อยมันก็คุ้มค่าที่จะเข้าใจไวยากรณ์ของภาษาก่อน ตัวเลือกตกอยู่กับ JavaScript เพียงเพราะขั้นตอนต่อไปสำหรับฉันคือการสร้างแอปพลิเคชันใน ReactNative ฉันเริ่มต้นด้วย อัตราแลกเปลี่ยน บน Codecademy และรู้สึกยินดีเป็นอย่างยิ่ง 7 วันแรกฟรี โครงการจริง. ฉันแนะนำ. เสร็จสิ้นใช้เวลาประมาณ 25 ชั่วโมง อันที่จริงมันไม่ได้มีประโยชน์ทั้งหมด นี่คือลักษณะของโครงสร้างหลักสูตรและรายละเอียดบล็อกแรก

คำแนะนำ: วิธีสร้าง Telegram bot อย่างง่ายใน JS สำหรับผู้เริ่มต้นในการเขียนโปรแกรม

2. จะลงทะเบียนบอทได้อย่างไร?

สิ่งนี้ช่วยฉันได้มากในตอนแรก บทความนี้ จากบล็อกของ Archakov คนหนึ่ง เขาเคี้ยวตั้งแต่เริ่มต้น แต่สิ่งสำคัญคือมีคำแนะนำในการลงทะเบียนบอท ฉันไม่สามารถเขียนได้ดีกว่านี้ และเนื่องจากนี่เป็นส่วนที่ง่ายที่สุด ฉันจึงเขียนแค่ส่วนสำคัญเท่านั้น คุณต้องสร้างบอทและรับ API ซึ่งทำได้ผ่านบอทอื่น - @BotFather ค้นหาเขาทางโทรเลข เขียนถึงเขา ทำตามเส้นทางง่ายๆ และรับ (บันทึก!) รหัส API (นี่คือชุดตัวเลขและตัวอักษร) มันมีประโยชน์ในภายหลัง

คำแนะนำ: วิธีสร้าง Telegram bot อย่างง่ายใน JS สำหรับผู้เริ่มต้นในการเขียนโปรแกรม

3. รหัสบอทมีลักษณะอย่างไร?

หลังจากศึกษาบทความมาเป็นเวลานาน ฉันก็พบว่าการใช้ไลบรารีบางประเภท (โค้ดของบุคคลที่สามในรูปแบบโมดูล) ก็คุ้มค่า เพื่อที่จะได้ไม่ต้องกังวลกับการศึกษา Telegram API และสร้างโค้ดขนาดใหญ่ตั้งแต่ต้น ฉันพบกรอบแล้ว โทรเลขซึ่งจำเป็นต้องเชื่อมต่อกับบางสิ่งโดยใช้ npm หรือเส้นด้าย นี่เป็นวิธีที่ฉันเข้าใจโดยประมาณว่าการใช้งานบอทประกอบด้วยอะไร หัวเราะที่นี่ ฉันจะไม่โกรธเคือง ตัวอย่างที่ด้านล่างของหน้าช่วยฉันได้มากที่สุดในระหว่างการสร้างบอทในภายหลัง:

คำแนะนำ: วิธีสร้าง Telegram bot อย่างง่ายใน JS สำหรับผู้เริ่มต้นในการเขียนโปรแกรม

3. วิธีสร้างเซิร์ฟเวอร์คลาวด์ของคุณเองในราคา 100 รูเบิล

หลังจากค้นหามาหลายครั้ง ฉันพบว่าคำสั่ง 'npm' ในภาพด้านบนหมายถึงบรรทัดคำสั่ง บรรทัดคำสั่งมีอยู่ทุกที่ แต่เพื่อให้สามารถดำเนินการได้ คุณต้องติดตั้ง NodePackageManager ปัญหาคือว่าฉันกำลังเขียนโปรแกรมบน PixelBook ด้วย ChromeOS ฉันจะข้ามบล็อกขนาดใหญ่เกี่ยวกับวิธีที่ฉันเรียนรู้ Linux ที่นี่ - ส่วนใหญ่ว่างเปล่าและไม่จำเป็น หากคุณมี Windows หรือ MacBook แสดงว่าคุณมีคอนโซลอยู่แล้ว

โดยสรุป ฉันติดตั้ง Linux ผ่าน Crostini

อย่างไรก็ตาม ในกระบวนการนี้ ฉันตระหนักว่าเพื่อให้บอททำงานอย่างต่อเนื่อง (และไม่ใช่แค่เมื่อคอมพิวเตอร์ของฉันเปิดอยู่) ฉันจำเป็นต้องมีเซิร์ฟเวอร์คลาวด์ ฉันเลือก vsscale.io ฉันใช้เงิน 100 รูเบิลและซื้อเซิร์ฟเวอร์ Ubuntu ที่ถูกที่สุด (ดูรูป)

คำแนะนำ: วิธีสร้าง Telegram bot อย่างง่ายใน JS สำหรับผู้เริ่มต้นในการเขียนโปรแกรม

4. วิธีเตรียมเซิร์ฟเวอร์เพื่อรันบอท

หลังจากนั้นฉันก็รู้ว่าฉันต้องสร้างโฟลเดอร์บางประเภทบนเซิร์ฟเวอร์โดยฉันจะใส่ไฟล์พร้อมข้อความโค้ด ในการทำเช่นนี้ในคอนโซล (เรียกใช้บนเว็บไซต์โดยตรงผ่านปุ่ม "เปิดคอนโซล") ฉันเข้าไป

mkdir bot

บอท - นี่คือชื่อโฟลเดอร์ของฉัน หลังจากนั้น ฉันติดตั้ง npm และ Node.js ซึ่งจะทำให้ฉันสามารถเรียกใช้โค้ดจากไฟล์ที่มีความละเอียด *.js

sudo apt update
sudo apt install nodejs
sudo apt install npm

ฉันขอแนะนำอย่างยิ่งให้ตั้งค่าการเชื่อมต่อกับเซิร์ฟเวอร์ผ่านคอนโซลของคุณในขั้นตอนนี้ ที่นี่ การแนะนำ สิ่งนี้จะช่วยให้คุณสามารถทำงานกับเซิร์ฟเวอร์ได้โดยตรงผ่านคอนโซลของคอมพิวเตอร์ของคุณ

5. วิธีเขียนโค้ดสำหรับบอทตัวแรกของคุณ

แต่ตอนนี้มันเป็นเพียงการค้นพบสำหรับฉัน โปรแกรมใดๆ ก็เป็นเพียงบรรทัดข้อความ สามารถแทรกได้ทุกที่ บันทึกด้วยส่วนขยายที่ต้องการ เท่านี้ก็เรียบร้อย คุณช่างงดงาม. ฉันใช้ อะตอมแต่ในความเป็นจริง คุณสามารถเขียนลงในสมุดจดมาตรฐานได้ สิ่งสำคัญคือการบันทึกไฟล์ในภายหลังในนามสกุลที่ต้องการ เหมือนกับการเขียนข้อความใน Word แล้วบันทึก

ฉันสร้างไฟล์ใหม่ โดยใส่โค้ดจากตัวอย่างในหน้าโทรเลขและบันทึกไว้ในไฟล์ index.js (โดยทั่วไปแล้ว ไม่จำเป็นต้องตั้งชื่อไฟล์ในลักษณะนั้น แต่เป็นเรื่องปกติ) สำคัญ - แทนที่จะใส่ BOT_TOKEN ให้ใส่คีย์ API ของคุณจากย่อหน้าที่สอง

const Telegraf = require('telegraf')

const bot = new Telegraf(process.env.BOT_TOKEN)
bot.start((ctx) => ctx.reply('Welcome!'))
bot.help((ctx) => ctx.reply('Send me a sticker'))
bot.on('sticker', (ctx) => ctx.reply(''))
bot.hears('hi', (ctx) => ctx.reply('Hey there'))
bot.launch()

6. วิธีอัพโหลดโค้ดขึ้นเซิร์ฟเวอร์ผ่าน GitHub

ตอนนี้ฉันต้องอัปโหลดโค้ดนี้ไปยังเซิร์ฟเวอร์และเรียกใช้งาน นี่กลายเป็นความท้าทายสำหรับฉัน หลังจากผ่านความยากลำบากมามาก ฉันพบว่าการสร้างไฟล์บน github จะง่ายกว่าซึ่งช่วยให้คุณอัปเดตโค้ดโดยใช้คำสั่งในคอนโซลได้ ฉันลงทะเบียนบัญชีเมื่อวันที่ GitHub และทำ โครงการใหม่ที่ฉันอัปโหลดไฟล์ หลังจากนั้นฉันต้องหาวิธีตั้งค่าการอัพโหลดไฟล์จากบัญชีของฉัน (เปิด!) ไปยังเซิร์ฟเวอร์ในโฟลเดอร์บอท (หากคุณปล่อยทิ้งไว้เพียงเขียน cd bot)

7. วิธีอัพโหลดไฟล์ขึ้นเซิร์ฟเวอร์ผ่าน GitHub ตอนที่ 2

ฉันจำเป็นต้องติดตั้งโปรแกรมบนเซิร์ฟเวอร์ที่จะดาวน์โหลดไฟล์จาก git ฉันติดตั้ง git บนเซิร์ฟเวอร์โดยพิมพ์ลงในคอนโซล

apt-get install git

หลังจากนั้นฉันต้องกำหนดค่าการอัพโหลดไฟล์ เมื่อต้องการทำสิ่งนี้ ฉันพิมพ์ลงในบรรทัดคำสั่ง

git clone git://github.com/b0tank/bot.git bot

เป็นผลให้ทุกอย่างจากโปรเจ็กต์ถูกอัพโหลดไปยังเซิร์ฟเวอร์ ข้อผิดพลาดในขั้นตอนนี้คือฉันสร้างโฟลเดอร์ที่สองภายในโฟลเดอร์บอทที่มีอยู่แล้ว ที่อยู่ของไฟล์ดูเหมือน */bot/bot/index.js

ฉันตัดสินใจที่จะเพิกเฉยต่อปัญหานี้

และหากต้องการโหลดไลบรารี telegraf ที่เราร้องขอในโค้ดบรรทัดแรก ให้พิมพ์คำสั่งลงในคอนโซล

npm install telegraf

8. วิธีเปิดบอท

ในการดำเนินการนี้ขณะอยู่ในโฟลเดอร์ที่มีไฟล์ (หากต้องการย้ายจากโฟลเดอร์หนึ่งไปอีกโฟลเดอร์หนึ่งผ่านคอนโซล ให้รันคำสั่ง format cd bot เพื่อให้แน่ใจว่าคุณอยู่ในที่ที่คุณต้องการ คุณสามารถป้อนคำสั่งที่จะแสดงไฟล์และโฟลเดอร์ทั้งหมดที่มีอยู่ในคอนโซล ls -a

ในการเริ่มต้นฉันเข้าสู่คอนโซล

node index.js

หากไม่มีข้อผิดพลาด ทุกอย่างเรียบร้อยดี บอทกำลังทำงานอยู่ มองหาเขาทางโทรเลข หากมีข้อผิดพลาดให้นำความรู้ของคุณไปประยุกต์ใช้จากข้อ 1

9. วิธีรันบอทในเบื้องหลัง

คุณจะรู้ได้อย่างรวดเร็วว่าบอทจะทำงานเฉพาะเมื่อคุณนั่งอยู่ในคอนโซลเท่านั้น เพื่อแก้ไขปัญหานี้ฉันใช้คำสั่ง

screen

หลังจากนี้จะมีหน้าจอพร้อมข้อความปรากฏขึ้น ซึ่งหมายความว่าทุกอย่างเรียบร้อยดี คุณอยู่บนเซิร์ฟเวอร์เสมือนบนเซิร์ฟเวอร์คลาวด์ เพื่อทำความเข้าใจให้ดีขึ้นว่ามันทำงานอย่างไร - นี่คือบทความ. เพียงไปที่โฟลเดอร์ของคุณและป้อนคำสั่งเพื่อเปิดบอท

node index.js

10. บอททำงานอย่างไร และจะขยายฟังก์ชันการทำงานอย่างไร

บอทตัวอย่างของเราทำอะไรได้บ้าง? เขาสามารถ

bot.start((ctx) => ctx.reply('Welcome!'))

พูดว่า "ยินดีต้อนรับ!" ในขณะที่เริ่มต้น (ลองเปลี่ยนข้อความ)

bot.help((ctx) => ctx.reply('Send me a sticker'))

เพื่อตอบสนองต่อคำสั่งมาตรฐาน /help ให้ส่งข้อความ “ส่งสติ๊กเกอร์ให้ฉัน”

bot.on('sticker', (ctx) => ctx.reply(''))

ส่งการอนุมัติเพื่อตอบกลับสติกเกอร์

bot.hears('hi', (ctx) => ctx.reply('Hey there'))

ตอบว่า “สวัสดี” หากพวกเขาเขียนว่า “สวัสดี” ถึงเขา
bot.launch()

คำแนะนำ: วิธีสร้าง Telegram bot อย่างง่ายใน JS สำหรับผู้เริ่มต้นในการเขียนโปรแกรม

ถ้าดูโค้ดที่ GitHubแล้วคุณจะเข้าใจได้อย่างรวดเร็วว่าฉันไม่ได้ไปไกลจากฟังก์ชันนี้มากนัก สิ่งที่ใช้งานอยู่คือฟังก์ชั่น ctx.replyWithPhoto ช่วยให้คุณสามารถส่งรูปภาพหรือ GIF ที่ระบุเพื่อตอบสนองต่อข้อความเฉพาะ

ส่วนสำคัญของโค้ดนี้เขียนโดยเด็กอายุ 11-13 ปี ซึ่งฉันอนุญาตให้เข้าถึงบอทได้ พวกเขาเข้าสู่กรณีผู้ใช้ของพวกเขา ฉันคิดว่ามันง่ายที่จะบอกได้ว่าส่วนไหนทำโดยพวกเขา

เช่น ข้อความ “เจค” จะได้รับ GIF พร้อมตัวละครชื่อดังจากการ์ตูนเรื่อง Adventure Time

คำแนะนำ: วิธีสร้าง Telegram bot อย่างง่ายใน JS สำหรับผู้เริ่มต้นในการเขียนโปรแกรม

เพื่อพัฒนาบอทเพิ่มเติม คุณต้องเชื่อมต่อคีย์บอร์ด ดูตัวอย่าง เช่น ด้วยเหตุนี้

11. วิธีอัพเดตโค้ดและรีสตาร์ทบอท

อย่าลืมว่าคุณต้องอัปเดตโค้ดไม่เพียงแต่บน github เท่านั้น แต่ยังบนเซิร์ฟเวอร์ด้วย ทำได้ง่ายๆ - หยุดบอท (กด ctrl+c)

- เข้าสู่คอนโซลขณะอยู่ในโฟลเดอร์เป้าหมาย git pull
— เราเปิดบอทอีกครั้งด้วยคำสั่ง node index.js

END

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

ในอนาคต ฉันกำลังวางแผนโพสต์เกี่ยวกับวิธีการสร้างแอปพลิเคชันแรกของคุณบน ReactNative ในรูปแบบเดียวกัน สมัครสมาชิก!

ที่มา: will.com

เพิ่มความคิดเห็น