Mihai discuta liber

The thoughts of me

(deși există instrucțiuni, nu sunt prea clare)

În primul rând ai nevoie de un cont pe Telegram. Telegram este o platformă similară WhatsApp și este populară pentru că nu aparține Facebok. Telegram are destul de multe facilități pe care WhatsApp nu le are. Una dintre aceste opțiuni este că poți crea un bot care poate fi foarte util. Eu l-am creat pentru a primi pe Telegram mesaje legate de serverul personal pe care rulează diferite job-uri automate. Aflu repede și ușor dacă totul funcționează cum trebuie.

Crearea bot-ului este automată și se face scriind unui user numit BotFather. Userul trebuie să aibă o bifă albastră ca să fii sigur că e contul care trebuie. Comenzile pe care trebuie să le rulezi sunt următoarele și trebuie rulate pe rând. Toate comenzile încep cu “/” și pot fi văzute scriind “/help”. Comenzile pot fi scrise direct sau pot fi alese din butonul “Menu”, aflat în stânga căsuței de scriere a mesajului. Recomand utilizarea aplicației Telegram pentru PC, care se poate instala atât de pe site-ul oficial, cât și din Microsoft Store sau Apple Store.

Prima comandă este “/newbot“. BotFather cere apoi un nume pentru bot care trebuie să fie de genul numeunic_bot (exemplu: robotulmeu_bot). Dacă numele este acceptat atunci BotFather va răspunde cu un link unde poate fi accesat botul (exemplu: http://t.me/robotulmeu_bot).

Următoarea comandă este “/mybots“, se apasă pe noul bot creat (identificat prin @robotulmeu_bot), apoi pe “API Token” și se apasă pe șirul de caractere. În aplicația de PC codul va fi automat copiat. Un exemplu de cheie API este “1234567890:AAEUXrtnFaA50eAKFpgqbhDwGPisagwgn88”. Cheia API cu 46 de caractere este unică pentru fiecare bot în parte și trebuie să fie notată undeva. Împreună cu adresa unică, cheia API va fi folosită pentru a face bot-ul să scrie mesaje. Cheia se poate afla mereu intrând acolo și tot de acolo se poate regenera apăsând pe “Revoke current token”.

Mai sunt niște lucruri care trebuie făcute. Presupunând că sunteți în meniul cheii API, se merge înapoi apăsând pe “Back to bot“, apoi se intră pe “Bot settings“. Se apasă pe “Allow Groups?” și apoi pe “Turn groups on” pentru a permite bot-ului să fie activ pe grupuri. Mesajul trebuie să fie “Groups are currently enabled“. Există și alte proprietăți ale botului care pot fi modificate apăsând pe “Edit bot” cum ar fi numele afișat “Edit Name” (e diferit de numele lui unic robotulmeu_bot și poate avea spații), o descriere “Edit About”, o poză care să-l descrie “Edit Description Picture”, o poză de profil “Edit Botpic” sau comenzi pe care le poate avea “Edit Commands”.

Acum trebuie să creați un grup cu bot-ul nou creat. Se apasă pe cele trei linii din stânga sus reprezentând meniul, se alege “New group“, se dă un nume grupului, se caută bot-ul după numele lui (robotulmeu_bot), se selectează bot-ul și apoi se apasă pe “Create” din dreapta jos. Este foarte important să se scrie ceva în acel grup și să se aștepte câteva minute pentru a putea obține informații despre acel grup.

Ceea ce urmează trebuie să se scrie în linie de comandă pe Linux sau Unix. Se poate folosi Ubuntu for Windows dacă nu aveți la îndemână o mașină cu Linux sau Unix.

E nevoie de ID-ul grupului în care vă aflați cu bot-ul. ID-ul începe cu minus și e urmat de 9 caractere (exemplu: -9876543210). Acel ID se obține cu una din următoarele comenzi. Prima comandă ar trebui să dea exact valoarea, a doua se folosește în caz că prima nu mai funcționează (ID-ul grupului se află după următorul șir de caractere chat”:{“id”: (scris îngroșat aici).

curl https://api.telegram.org/botCHEIE_API/getUpdates | jq .result[].message.chat.id

curl https://api.telegram.org/botCHEIE_API/getUpdates | grep '"chat":{"id":'

În exemplele date se înlocuiește CHEIE_API cu valoarea exemplu descrisă mai sus (1234567890:AAEUXrtnFaA50eAKFpgqbhDwGPisagwgn88).

curl https://api.telegram.org/bot1234567890:AAEUXrtnFaA50eAKFpgqbhDwGPisagwgn88/getUpdates | jq .result[].message.chat.id

curl https://api.telegram.org/bot1234567890:AAEUXrtnFaA50eAKFpgqbhDwGPisagwgn88/getUpdates | grep '"chat":{"id":'

Pe baza cheii API și a ID-ului grupului bot-ul poate trimite mesaje în acel chat în funcție de nevoie.

curl -X POST \
     -H 'Content-Type: application/json' \
     -d '{"chat_id": "-987654321", "text": "This is a test from curl", "disable_notification": true}' \
     https://api.telegram.org/bot1234567890:AAEUXrtnFaA50eAKFpgqbhDwGPisagwgn88/sendMessage

Se poate folosi un script prin care bot-ul să preia un anumit mesaj text și să-l trimită în chat. Faptul că mesajul propriu-zis se trimite cu o comandă gen curl face ca utilitatea să fie foarte mare. Eu folosesc un astfel de bot pentru a trimite mesaje de fiecare dată când rulează job-urile programate pe serverul meu. Primesc în timp real informații despre acele job-uri și nu mai este nevoie să intru pe server pentru a verifica starea lor. E important de știut că bot-ul nu poate trimite mesaje mai des de 30 de secunde, altfel este considerat spam și pot apare probleme.

Poza este preluată de pe Wikipedia. Pașii i-am găsit pe GitHub, dar nu erau atât de clari, așa că am fost nevoit să adaptez ceea ce am văzut acolo.

Related Posts:

General

2 Responses so far.

  1. Cristian says:

    Buna ziua,cum putem lua legatura?

    • Mihai says:

      Salutare Cristian. Comentariul tău a intrat la moderare. Despre ce vrei să vorbim? O putem face aici. Blogul are și pagină de Facebook, există un link în partea dreaptă.
      Mihai recently posted…Cum să creezi un bot pe TelegramMy Profile


CommentLuv badge

Loading Facebook Comments ...
Loading Disqus Comments ...