Telegram Bot: Jak zacząć?

Cześć ✋!
Dzisiaj będziemy pisać własnego bota do telegrama. Jeśli nie wiesz co to jest telegram, to zapraszam na oficjalną stronę po więcej informacji.
Dla tych, którym nie chce się kliknąc w linka 😉 to telegram w skrócie to: lekki, prosty w użytkowaniu, bezpieczny komunikator internetowy.

🤔 Ok, jak zacząć „programować” telegrama?

Telegrama „programuje się” pisząc boty. Boty można traktować jako programy zainstalowane w środowisku telegrama. Zachęcam do odwiedzenia strony https://core.telegram.org/bots, gdzie są przestawione ich możliwości (również polecam przeczytanie sekcji BotFather).


Ok, z w/w źródeł powinniśmy mieć już jakieś pojęcie na temat botów: czym są, jak się z nimi komunikujemy, jakie mają możliwości (z grubsza przynajmniej). Możemy iść dalej…

Najpierw musimy utworzyć bota i zdobyć jego API Token, aby móc się z nim komunikować. Robimy to właśnie za pomocą BotFathera.

Uruchamiamy telegrama i w wyszukiwarce wpisujemy: BotFather


Po wybraniu BotFathera pojawia się zwykle okno do komunikacji.
Wrzucamy tam komendę: /newbot

BotFather ładnie nas poinformuje, że czeka na podanie nazwy naszego bota.

Możemy tutaj wpisać dowolną nazwę. Będzie to imię bota, które będzie widoczne podczas komunikacji.

Następnie BotFather zapyta się o jego nazwę (@username). Musi to być unikatowa nazwa w całym systemie telegrama oraz musi się kończyć na: bot

Ja wybieram H5BroadcastBot ponieważ w następnym poście pokażę jak napisać prostego bota rozgłaszającego wiadomości na różne kanały, które nie są ze sobą w żaden sposób połączone. Prywatnie potrzebuję takiej funkcjonalności, więc chętnie opiszę proces jej powstawania.

BotFather po utworzeniu bota odeśle nam wiadomość, gdzie znajduje się token HTTP API (zachowajcie go TYLKO dla siebie).


Świetnie! Wszystko gotowe, możemy zacząć programować.

✋ Hello World (w .NETcie)

Do komunikacji z botem, możemy użyć dowolnego języka/technologii. Wszystko odbywa się przez API telegrama. Z racji tego, że siedzę w .NETcie od „N”-lat, więc to dla mnie jest naturalny wybór.

Na początku utworzymy zwykły projekt .NETowy. Nie ważne czy to core, czy framework >= 4, kto co woli. Ja wybieram core 3.1.

Skorzystamy z najpopularniejszej biblioteki do telegrama: telegram.bot

Biblioteka jest bardzo prosta w użyciu. Na początku wyślemy standardowy: Hello World, bo jakże zacząć od czegoś innego?

static async Task Main(string[] args)
{
    ITelegramBotClient client = new TelegramBotClient(TOKEN);
    await client.SendTextMessageAsync(CHAT_ID, "Hello World!");
}

I to prawie wszystko… gdyby nie jedna, mała rzecz… TOKEN! wiemy czym jest. Dostaliśmy go od BotFathera. Natomiast czym jest CHAT_ID!?

💬 Pobieramy CHAT_ID

CHAT_ID to nic innego jak ID kanału, na jakim bot ma działać. Może to być grupa, kanał lub bezpośrednia rozmowa. „Hello worda” zrobimy jako zwykłą rozmowę. Dobrze, wróćmy do BotFathera


Klikamy w zaznaczony wyżej adres (u Was będzie oczywiście inny).

Wybieramy START:


i już możemy komunikować się z botem. Napiszmy mu zwykłe „hi


dzięki temu, że coś wysłaliśmy do bota jesteśmy w stanie przechwycić CHAT_ID. Wystarczy wejść na adres:

👉 https://api.telegram.org/botTOKEN/getUpdates

W odpowiedzi znajdziecie CHAT_ID:

Wrzucamy tę wartość do consta w kodzie i uruchamiamy aplikację

Działa 👌

W następnym poście rozbudujemy możliwości bota.

Dodaj się do newslettera aby niczego nie przegapić!
👉 https://high-five.cc/newsletter