วิธีสร้างบอทโทรเลขพื้นฐานด้วย Python 3

วิธีสร้างบอทโทรเลขพื้นฐานด้วย Python 3

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





แม้ว่าบางคนอาจพบว่าการพัฒนาบอทเป็นงานที่น่ากลัว แต่ก็ไม่เป็นเช่นนั้นจริงๆ ด้วยการวางแผนที่ถูกต้อง คุณสามารถให้บอทโทรเลขเริ่มทำงานได้ภายในเวลาไม่ถึงชั่วโมง! ต่อไปนี้คือวิธีสร้างบอทโทรเลขแบบง่ายๆ ที่แสดงรูปภาพน่ารักของแมวอินเทอร์เน็ตเมื่อได้รับแจ้ง





เริ่มต้น

สำหรับบทช่วยสอนนี้ เราจะใช้ Python 3, the python-โทรเลข-bot และ คำขอ ห้องสมุดและ TheCatAPI .





บอททุกตัวใน Telegram มีโทเค็นพิเศษที่ช่วยให้มันสื่อสารกับ Bot API เพื่อใช้อินเทอร์เฟซการส่งข้อความของแอป Bot API หนึ่งในคุณสมบัติยอดนิยมของ Telegram ในหมู่นักพัฒนา ช่วยให้คุณใช้ข้อความเป็นอินเทอร์เฟซได้

วิธีโอนเพลงจาก iPod ลง iTunes

ในการรับโทเค็น เริ่มการสนทนากับ @BotFather ซึ่งตามชื่อของมันก็คือบอทอย่างเป็นทางการที่ให้คุณสร้างและปรับแต่งบอทของคุณเองได้ คุณสามารถเข้าถึงบอทโดยใช้ลิงก์ที่ให้มาหรือค้นหา '@botfather' บน Telegram



เมื่ออยู่ในแชท ให้สร้างบอทของคุณโดยพิมพ์ /newbot สั่งการ. ตั้งชื่อและชื่อผู้ใช้บอทของคุณต่อไป (เราตัดสินใจตั้งชื่อว่า @pawsomebot ของเรา) ต่อไปนี้ คุณจะได้รับโทเค็นเฉพาะสำหรับบอทของคุณ

ตอนนี้เรามีข้อกำหนดเบื้องต้นทั้งหมดแล้ว ก็ถึงเวลาเข้าสู่ส่วนที่น่าตื่นเต้น!





การติดตั้งไลบรารี

หากคุณกำลังใช้ Windows ให้เปิดพร้อมท์คำสั่งแล้วพิมพ์คำสั่งต่อไปนี้:

pip install python-telegram-bot
pip install requests

หากคุณใช้ macOS หรือ Linux ให้ใช้คำสั่งต่อไปนี้บนเทอร์มินัลของคุณแทน นอกจากนี้ใน Linux ให้ตรวจสอบว่าคุณเข้าสู่ระบบในฐานะผู้ใช้ที่มีสิทธิ์ sudo





pip3 install python-telegram-bot
pip3 install requests

การเขียนโปรแกรม

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

ตอนนี้ มานำเข้าไลบรารีที่เราติดตั้งไว้ก่อนหน้านี้พร้อมกับฟังก์ชันในตัวบางส่วน

from telegram.ext import Updater, CommandHandler
import requests
import re

ขั้นตอนของโปรแกรมต่อจากนี้ไปคือการเข้าถึง TheCatAPI รับ URL ของรูปภาพแบบสุ่ม และส่งรูปภาพนั้นไปยังแชทของผู้ใช้

เริ่มต้นด้วยฟังก์ชันเพื่อรับ URL รูปภาพ ซึ่งสามารถทำได้โดยใช้โมดูลคำขอ ในฟังก์ชันนี้ เราโหลดข้อมูล JSON ของไฟล์สุ่มที่ TheCatAPI จัดเตรียมไว้ให้และแยก URL ของไฟล์นั้นไปใช้ในภายหลัง ในการดูรูปแบบของวัตถุ JSON ตรงไปที่ https://api.thecatapi.com/v1/images/search บนเบราว์เซอร์ของคุณ คุณจะสังเกตเห็นสิ่งนี้:

[{'breeds':[],'id':'a8c','url':'url.jpg','width':800,'height':533}]

ขอให้สังเกตว่าวัตถุ JSON เป็นอาร์เรย์ที่มีพจนานุกรม พจนานุกรมนี้มี URL ที่มีคีย์ 'url' ในการแยก URL เราจำเป็นต้องอ้างอิงองค์ประกอบแรกของอาร์เรย์ แล้วตามด้วยคีย์ที่เกี่ยวข้อง

def getUrl():
#obtain a json object with image details
#extract image url from the json object
contents = requests.get('https://api.thecatapi.com/v1/images/search')
url = contents[0]['url']
return url

ขั้นต่อไป เราต้องส่งภาพนี้ไปในแชทของผู้ใช้ สำหรับสิ่งนี้ เราต้องการ URL รูปภาพและ ID เฉพาะของการแชทของผู้ใช้ มาสร้างฟังก์ชัน wrapper เพื่อทำสิ่งนี้กัน อันดับแรก เราเรียก getUrl() . ฟังก์ชันเพื่อรับ URL ของรูปภาพแบบสุ่ม -- URL นี้จะเปลี่ยนทุกครั้งที่โปรแกรมของคุณทำซ้ำผ่านฟังก์ชัน

ตามด้วยการรับ ID แชทของผู้รับ ซึ่งกำหนดตำแหน่งเป้าหมายของบอทสำหรับข้อความและแยกวิเคราะห์ URL ผ่าน Bot API ในตัว ส่งรูปภาพ() การทำงาน.

def sendImage(bot, update):
url = getUrl()
chat_id = update.message.chat_id
bot.send_photo(chat_id=chat_id, image=url)

หากต้องการข้อมูลเพิ่มเติมเกี่ยวกับฟังก์ชัน inbuilt ต่างๆ ของ Bot API และวิธีการทำงาน โปรดดูที่ Telegram's เอกสารราชการ หลังจากบทช่วยสอนนี้

สุดท้าย มาสร้างฟังก์ชันที่ควบคุมการทำงานโดยรวมของบอทกัน ฟังก์ชันนี้---ปกติเรียกว่า main()---เป็นที่ที่เราส่งคำขอ HTTP ไปยัง Bot API โดยใช้โทเค็นที่เราได้รับเมื่อเริ่มต้นบทช่วยสอน จากนั้นกำหนดว่าการโต้ตอบกับผู้ใช้ของบอทจะเป็นอย่างไร ในกรณีง่ายๆ อย่างของเรา นี่หมายถึงการเริ่มต้นบอทและเรียก ส่งรูปภาพ () ทำงานเมื่อได้รับแจ้งจากผู้ใช้

def main():
updater = Updater('1190888035:AAGeJ9316R95NqJLFefV5vQA-UL4np11V2c')
#call sendImage() when the user types a command in the telegram chat
updater.dispatcher.add_handler(CommandHandler('meow',sendImage))
#start the bot
updater.start_polling()
updater.idle()
if __name__ == '__main__':
main()

โปรแกรมสุดท้ายของคุณควรมีลักษณะดังนี้:

from telegram.ext import Updater, CommandHandler
import requests
import re
def getUrl():
#obtain a json object with image details
#extract image url from the json object
contents = requests.get('https://api.thecatapi.com/v1/images/search')
url = contents[0]['url']
return url
def sendImage(bot, update):
url = getUrl()
chat_id = update.message.chat_id
bot.send_photo(chat_id=chat_id, image=url)
def main():
updater = Updater('1190888035:AAGeJ9316R95NqJLFefV5vQA-UL4np11V2c')
#call sendImage() when the user types a command in the telegram chat
updater.dispatcher.add_handler(CommandHandler('meow',sendImage))
#start the bot
updater.start_polling()
updater.idle()
if __name__ == '__main__':
main()

Bot โทรเลขของคุณเอง

ยินดีด้วย! คุณได้สร้างบอทบรรเทาความเครียดของตัวเองแล้ว ซึ่งส่งภาพโอเพนซอร์สของแมวอินเทอร์เน็ตที่น่ารักที่สุดเมื่อได้รับแจ้ง ลองรันโปรแกรมแล้วพิมพ์ /เหมียว ในการแชทของบอทของคุณเพื่อเปิดใช้งาน

แม้ว่านี่อาจเป็นบอทธรรมดาที่มีฟังก์ชันจำกัด แต่ก็แสดงให้เห็นว่าระบบนิเวศการพัฒนาบอทของ Telegram นั้นทรงพลังเพียงใด คุณสามารถเพิ่มรูทีนย่อยและคุณสมบัติที่ซับซ้อนจำนวนเท่าใดก็ได้เพื่อเพิ่มประสิทธิภาพการทำงานของบอทของคุณ — ท้องฟ้ามีขีดจำกัด หากต้องการทราบข้อมูลเพิ่มเติมเกี่ยวกับบอทโทรเลขที่ยอดเยี่ยมที่ผู้ร่วมให้ข้อมูลได้ทำในช่วงหลายปีที่ผ่านมา โปรดดูของเรา รายการบอทโทรเลขที่มีประโยชน์ .

คุณยังสามารถค้นหาโปรแกรมลิขสิทธิ์โอเพนซอร์ซที่หลากหลายสำหรับบอทโทรเลขบนแพลตฟอร์ม เช่น GitHub ใบอนุญาตโอเพนซอร์ซส่วนใหญ่อนุญาตให้คุณใช้ ศึกษา ดาวน์โหลด หรือแก้ไขซอร์สโค้ดของโปรแกรมได้

โฮสต์บอทโทรเลขออนไลน์ของคุณ

เมื่อคุณมีบอทและทำงานแล้ว ให้ลองปิด main.py บนพีซีของคุณ และใช้บอทบนแอป Telegram messenger ของคุณ มันยังคงตอบสนองต่อ /เหมียว สั่งการ? ไม่มันไม่ได้

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

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

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

คุณยังสามารถปรับใช้โปรแกรมของคุณกับระบบคลาวด์ได้อีกด้วย ไปที่แพลตฟอร์มโฮสต์เว็บแอป เช่น Heroku, AWS, Google Cloud หรือ Microsoft Azure แล้วเลือกการสมัครรับข้อมูลที่เหมาะสมกับความต้องการของคุณมากที่สุด เราแนะนำให้เลือกรุ่นทดลองใช้ฟรีหรือสมัครสมาชิกและอัปเกรดเมื่อคุณเพิ่มขนาดหรือขอบเขตของโปรแกรม

แบ่งปัน แบ่งปัน ทวีต อีเมล วิธีโฮสต์เว็บไซต์ Python ของคุณฟรีบน Heroku

ต้องการโฮสต์เว็บไซต์ขนาดเล็กโดยไม่มีค่าใช้จ่ายใช่หรือไม่ Heroku อาจเป็นสิ่งที่คุณกำลังมองหา

อ่านต่อไป
หัวข้อที่เกี่ยวข้อง
  • การเขียนโปรแกรม
  • Python
  • โทรเลข
  • แชทบอท
  • บอทโซเชียลมีเดีย
เกี่ยวกับผู้เขียน ยัช เชลลานี(10 บทความที่ตีพิมพ์)

Yash เป็นนักศึกษาวิทยาการคอมพิวเตอร์ผู้ใฝ่ฝันที่รักการสร้างสิ่งต่าง ๆ และเขียนเกี่ยวกับเทคโนโลยีทุกอย่าง ในเวลาว่าง เขาชอบเล่นสควอช อ่านสำเนา Murakami ล่าสุด และล่ามังกรใน Skyrim

เพิ่มเติมจาก Yash Chellani

สมัครรับจดหมายข่าวของเรา

เข้าร่วมจดหมายข่าวของเราสำหรับเคล็ดลับทางเทคนิค บทวิจารณ์ eBook ฟรี และดีลพิเศษ!

คลิกที่นี่เพื่อสมัครสมาชิก