Как да създадете основен бот за телеграма с Python 3

Как да създадете основен бот за телеграма с Python 3

Ако сте потребител на Telegram, сигурно в даден момент сте имали „разговор“ с чатбот. Със своята невероятна възможност за персонализиране, ботовете на Telegram предлагат различни предимства-било то за автоматизиране на задачи или просто за забавление с игри във вашата чат група.





Докато някои може да открият, че разработването на бот е трудна задача, това всъщност не е така. С правилното планиране можете да стартирате и стартирате бот на Telegram за по -малко от час! Ето как да създадете прост Telegram бот, който извежда сладки снимки на интернет котки, когато бъдете подканени.





Приготвяме се да започнем

За този урок ще използваме Python 3, python-telegram-bot и заявки библиотека и TheCatAPI .





Всеки бот в Telegram има уникален знак, който му помага да комуникира Bot API за да използвате интерфейса за съобщения на приложението. Bot API, една от най -популярните функции на Telegram сред разработчиците, ви позволява да използвате съобщенията му като интерфейс.

как да получите парола за wifi от android

За да получите жетона, започнете разговор с @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 адрес на изображение, както и от уникалния идентификатор на чата на потребителя. Нека създадем обвиваща функция, за да направим това. Първо, наричаме getUrl () . функция за получаване на URL адреса на произволно изображение --- този URL адрес се променя всеки път, когато програмата ви прави повторение чрез функцията.

Това е последвано от получаване на идентификационния номер на чата на потребителя на получателя, който определя целевото местоположение на бота за съобщения и анализиране на URL адреса чрез вградения API на Bot изпращам снимка() функция.

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

За да научите повече за различните вградени функции на Bot API и как работят, не се колебайте да проверите тези на Telegram официална документация след този урок.

И накрая, нека създадем функция, която контролира цялостната работа на бота. Тази функция --- условно наречена main () --- е мястото, където изпращаме HTTP заявка до Bot API, използвайки маркера, който получихме в началото на урока, и след това определяме какво ще бъде взаимодействието с потребителя на бота. В толкова прост случай като нашия, това по същество означава иницииране на бота и извикване на sendImage () функция при подкана от потребителя.

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()

Вашият собствен бот за телеграма

Честито! Създали сте свой собствен бот за облекчаване на стреса, който изпраща изображения с отворен код на най-сладките интернет котки, след като бъде подканен. Опитайте да стартирате програмата си и въведете /мяукане в чата на вашия бот, за да го активирате.

Въпреки че това може да е обикновен бот с ограничена функционалност, той показва колко мощна е екосистемата за развитие на ботове на Telegram. Можете да добавите произволен брой сложни подпрограми и функции, за да подобрите функционалността на вашия бот --- небето е границата. За да научите повече за страхотните ботове на Telegram, които сътрудниците са направили през годините, вижте нашия списък с полезни ботове за Telegram .

Можете също така да намерите различни лицензирани програми с отворен код за ботове на Telegram на платформи като GitHub. Повечето лицензи с отворен код ви позволяват да използвате, изучавате, изтегляте или променяте изходния код на програма.

Хоствайте вашия Telegram Bot онлайн

Сега, когато ботът ви е стартиран, опитайте да затворите main.py на вашия компютър и използвайте бота във вашето приложение за Messenger на Telegram. Дали все още отговаря на /мяукане команда? Не, не е така.

Като начинаещ може да се объркате защо main.py на вашия компютър трябва да работи и да работи, когато вече сте създали бот, работещ в интернет. Причината за това е, че програмата използва вашия компютър като локален сървър за изпращане на HTTP заявки до API, използвани в тази програма.

Поради това не е необходимо, нито е удобно да стартирате програмата всеки път, когато искате да използвате приложението. За да разрешим този проблем, трябва да премахнем зависимостта на бота от вашето устройство

Един от начините да направите това е да използвате евтина печатна платка (PCB), като Raspberry Pi, за да настроите свой собствен уеб сървър и да го използвате за стартиране на вашата програма. Той има същите предимства като стартирането на програмата на вашия компютър, без разходите за поддържането й през целия ден и нощ, тъй като печатните платки са склонни да имат значително по -нисък енергиен отпечатък.

Като алтернатива можете също да разгърнете програмата си в облака. Отидете до хостинг платформа за уеб приложения, като Heroku, AWS, Google Cloud или Microsoft Azure и изберете абонамент, който най-добре отговаря на вашите нужди. Препоръчваме да изберете безплатен пробен период или абонамент и да го надстроите, тъй като увеличавате мащаба или обхвата на вашата програма.

Дял Дял Туит електронна поща Как да хоствате вашия уебсайт Python безплатно на Heroku

Трябва да хоствате малък уебсайт без разходи? Heroku може да е точно това, което търсите.

Прочетете Напред
Свързани теми
  • Програмиране
  • Python
  • Телеграма
  • Chatbot
  • Ботове за социални медии
За автора Яш Челани(10 статии са публикувани)

Яш е амбициозен студент по компютърни науки, който обича да изгражда неща и да пише за всички технологии. В свободното си време обича да играе скуош, да чете копие от най -новите Мураками и да ловува дракони в Скайрим.

Още от Yash Chellani

Абонирайте се за нашия бюлетин

Присъединете се към нашия бюлетин за технически съвети, рецензии, безплатни електронни книги и изключителни оферти!

Щракнете тук, за да се абонирате