Jak zbudować podstawowego bota telegramu za pomocą Pythona 3

Jak zbudować podstawowego bota telegramu za pomocą Pythona 3

Jeśli jesteś użytkownikiem Telegrama, na pewno w pewnym momencie odbyłeś „rozmowę” z chatbotem. Dzięki niesamowitym możliwościom dostosowywania boty Telegrama oferują wiele korzyści – czy to do automatyzacji zadań, czy po prostu do zabawy z grami w grupie czatu.





Chociaż niektórzy mogą uznać tworzenie bota za zniechęcające zadanie, tak naprawdę nie jest. Przy odpowiednim planowaniu możesz uruchomić bota Telegrama w mniej niż godzinę! Oto jak stworzyć prostego bota Telegrama, który po wyświetleniu monitu wyświetla urocze zdjęcia kotów internetowych.





Pierwsze kroki

W tym samouczku użyjemy Pythona 3, python-telegram-bot oraz upraszanie biblioteka i InterfejsCatAPI .





Każdy bot w Telegramie ma unikalny token, który pomaga mu się komunikować Bot API w celu korzystania z interfejsu wiadomości aplikacji. Bot API, jedna z najpopularniejszych funkcji Telegrama wśród programistów, pozwala używać jego wiadomości jako interfejsu.

Brak menedżera wtyczek notepad++

Aby zdobyć token, rozpocznij rozmowę z @OjciecBot który, jak sama nazwa wskazuje, jest oficjalnym botem, który pozwala tworzyć i dostosowywać własne boty. Możesz uzyskać dostęp do bota za pomocą podanego linku lub alternatywnie wyszukać „@botfather” w Telegramie.



Na czacie utwórz bota, wpisując /nowybot Komenda. Kontynuuj ustawianie nazwy i nazwy użytkownika swojego bota (postanowiliśmy nazwać nasz @pawsomebot). Następnie otrzymasz token unikalny dla Twojego bota.

Teraz, gdy mamy już wszystkie warunki wstępne, czas przejść do ekscytującej części!





Instalowanie bibliotek

Jeśli używasz systemu Windows, otwórz wiersz poleceń i wpisz następujące polecenia:

pip install python-telegram-bot
pip install requests

Jeśli używasz systemu macOS lub Linux, zamiast tego użyj następujących poleceń na swoim terminalu. Dodatkowo w Linuksie upewnij się, że jesteś zalogowany jako użytkownik z uprawnieniami sudo.





pip3 install python-telegram-bot
pip3 install requests

Pisanie programu

Utwórz nowy folder na swoim komputerze i otwórz go w swoim ulubionym edytorze. Utwórz nowy plik i nazwij go main.py. Ten plik będzie zawierał kod źródłowy twojego bota.

Teraz zaimportujmy biblioteki, które zainstalowaliśmy wcześniej, wraz z niektórymi ich wbudowanymi funkcjami.

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

Przebieg programu od tego momentu polega na uzyskaniu dostępu do TheCatAPI, uzyskaniu adresu URL losowego obrazu i wysłaniu tego obrazu na czat użytkownika.

Zacznijmy od funkcji do pobrania adresu URL obrazu, co można zrobić za pomocą modułu request. W tej funkcji ładujemy dane JSON losowego pliku dostarczonego przez TheCatAPI i wyodrębniamy jego adres URL do późniejszego wykorzystania. Aby spojrzeć na format obiektu JSON, przejdź do https://api.thecatapi.com/v1/images/search w Twojej przeglądarce. Zauważysz coś takiego:

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

Zwróć uwagę, że obiekt JSON jest tablicą zawierającą słownik. Ten słownik zawiera adres URL z kluczem „url”. Aby wyodrębnić adres URL, musimy odwołać się do pierwszego elementu tablicy, a następnie do odpowiedniego klucza.

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

Następnie musimy wysłać ten obraz na czat użytkownika. W tym celu potrzebujemy adresu URL obrazu oraz unikalnego identyfikatora czatu użytkownika. Stwórzmy w tym celu funkcję opakowującą. Najpierw nazywamy pobierzUrl() . funkcji, aby uzyskać adres URL losowego obrazu ---ten adres URL zmienia się za każdym razem, gdy program wykonuje iterację funkcji.

Następnie uzyskuje się identyfikator czatu użytkownika odbiorcy, który określa docelową lokalizację bota dla wiadomości i analizuje adres URL za pomocą wbudowanego interfejsu Bot API przesłać zdjęcie() funkcjonować.

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

Aby dowiedzieć się więcej o różnych wbudowanych funkcjach Bot API i ich działaniu, odwiedź Telegram oficjalna dokumentacja po tym samouczku.

Na koniec stwórzmy funkcję, która kontroluje ogólne działanie bota. Ta funkcja — konwencjonalnie nazywana main() — służy do wysyłania żądania HTTP do Bot API za pomocą tokena, który otrzymaliśmy na początku samouczka, a następnie określa, jak będzie wyglądać interakcja bota z użytkownikiem. W przypadku tak prostym, jak nasz, oznacza to zasadniczo zainicjowanie bota i wywołanie sendImage () funkcja po wyświetleniu monitu przez użytkownika.

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

Twój końcowy program powinien wyglądać tak:

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

Twój własny bot telegramu

Gratulacje! Zbudowałeś własnego bota, który łagodzi stres, który po wyświetleniu monitu wysyła obrazy o otwartym kodzie źródłowym do najsłodszych internetowych kotów. Spróbuj uruchomić swój program i wpisz /miauczeć na czacie swojego bota, aby go aktywować.

Chociaż może to być prosty bot o ograniczonej funkcjonalności, pokazuje, jak potężny jest ekosystem rozwoju botów Telegram. Możesz dodać dowolną liczbę złożonych podprogramów i funkcji, aby zwiększyć funkcjonalność swojego bota — nieograniczone możliwości. Aby dowiedzieć się więcej o niesamowitych botach Telegram, które współtwórcy stworzyli przez lata, zapoznaj się z naszym lista przydatnych botów Telegram .

Możesz także znaleźć wiele programów licencjonowanych typu open source dla botów Telegram na platformach takich jak GitHub. Większość licencji open source pozwala na używanie, badanie, pobieranie lub modyfikowanie kodu źródłowego programu.

Hostuj swojego bota Telegrama online

Teraz, gdy masz już uruchomionego bota, spróbuj zamknąć main.py na swoim komputerze i użyj bota w aplikacji komunikatora Telegram. Czy nadal reaguje na? /miauczeć Komenda? Nie, nie ma.

Jako początkujący możesz być zdezorientowany, dlaczego main.py na twoim komputerze musi być uruchomiony, skoro już utworzyłeś bota działającego w Internecie. Powodem tego jest to, że program używa twojego komputera jako lokalnego serwera do wysyłania żądań HTTP do interfejsów API używanych w tym programie.

W związku z tym konieczność uruchamiania programu za każdym razem, gdy chcesz skorzystać z aplikacji, nie jest ani wykonalna, ani wygodna. Aby rozwiązać ten problem, musimy usunąć zależność bota od Twojego urządzenia

Jednym ze sposobów, aby to zrobić, jest użycie niedrogiej płytki drukowanej (PCB), takiej jak Raspberry Pi , do skonfigurowania własnego serwera WWW i użycia go do uruchomienia programu. Daje takie same korzyści, jak uruchamianie programu na komputerze bez kosztów utrzymania go przez cały dzień i noc, ponieważ płytki drukowane mają zwykle znacznie mniejszy ślad energetyczny.

Alternatywnie możesz również wdrożyć swój program w chmurze. Przejdź na platformę hostingową aplikacji internetowych, taką jak Heroku, AWS, Google Cloud lub Microsoft Azure, i wybierz subskrypcję, która najlepiej odpowiada Twoim potrzebom. Zalecamy wybranie bezpłatnej wersji próbnej lub subskrypcji i uaktualnienie jej w miarę zwiększania skali lub zakresu programu.

Udział Udział Ćwierkać E-mail Jak hostować swoją witrynę Pythona za darmo na Heroku?

Potrzebujesz bezpłatnie hostować małą witrynę internetową? Heroku może być właśnie tym, czego szukasz.

Czytaj dalej
Powiązane tematy
  • Programowanie
  • Pyton
  • Telegram
  • Chatbot
  • Boty mediów społecznościowych
O autorze Yash Chellani(10 opublikowanych artykułów)

Yash jest początkującym studentem informatyki, który uwielbia budować i pisać o wszystkich sprawach technicznych. W wolnym czasie lubi grać w squasha, czytać najnowsze gry Murakami i polować na smoki w Skyrim.

Więcej od Yasha Chellani

Zapisz się do naszego newslettera

Dołącz do naszego newslettera, aby otrzymywać porady techniczne, recenzje, bezpłatne e-booki i ekskluzywne oferty!

Kliknij tutaj, aby zasubskrybować