Per crear un bot farem servir un altre bot anomenat BotFather. Podem picar al botó de la lupa i posar les primeres lletres del nom. Veurem que és el que ens interessa per la seva icona característica i pel fet que no té un compte d'usuari (començat amb @) associat. Quan obrim BotFather haurem de picar el botó START, situat a la part inferior, per poder començar a treballar amb ell.

Quan piquem el botó START ens informarà de la llista de comandes disponible. Per enviar una comanda
podem picar la barra / del teclat o fer servir el botó
![]()
Entrarem la comanda /newbot i picarem la tecla enter. Ens demanarà que entrem el nom que li volem donar al bot. Podem posar, per exemple, bot_IoT. Després ens demana que donem un nom d'usuari que, necessàriament, ha d'acabar en "bot". Una bona pràctica és afegir _bot al final del nom del bot. En el nostre cas, doncs, posem com a nom d'usuari bot_provaIoT_bot. Un cop definit el bot, ens donarà l'adreça i el token que ens permetran accedir al bot. L'adreça serà una cosa similar a:
http://t.me/bot_provaIoT_bot
I el token serà una successió de caràcters com, per exemple, aquesta:
^^34628844:AAFIpk-e7j3UZtYQYQaTduf4mPhnDqIcNXI
Un cop tenim el bot definit, passarem a configurar-lo. Amb la comanda /mybots ens sortirà la llista dels nostres bots (segurament només un) i picarem sobre el nom d'usuari del bot (@bot_provaIoT_bot). S'ens mostraran diverses opcions. En aquest moment ens interessa l'opció Edit Bot. Quan la piquem veurem diverses opcions entre les que ens poden interessar Edit Botpic, que ens permet posar una imatge (mínim 150 ⨯ 150 px) al bot, o Edit Commands, que ens servirà per definir una llista de comandes que ens sortiran quan piquem la barra /. Les comandes s'han d'entrar posant el nom de la comanda (sense accents o caràcters especials), un espai, un guió, un espai i una breu descripció de la comanda. Per saltar de línia i poder escriure la comanda següent picarem la tecla enter al mateix temps que la de majúscules. Aquestes dues configuracions no són obligatòries i les podem fer (o modificar les opcions) quan desitgem. En aquest cas definim tres comandes:
llistat - Llista de les comandes disponibles guardar - Guarda un valor al full de càlcul llegir - Llegeix el darrer valor guardat
Un cop ja tenim el bot definit, el podríem cercar (com hem fet per trobar BotFather), iniciar-lo (prement START) i enviar-li comandes, però no farà res perquè no li hem dit què s'ha d'executar quan s'enviï una comanda al bot.
Telegram envia i rep la informació en format JSON. Podem veure, des del navegador, la darrera comanda que s'ha enviat al nostre bot. Per fer-ho, emprarem la següent URL:
https://api.telegram.org/bot^^34628844:AAFIpk-e7j3UZtYQYQaTduf4mPhnDqIcNXI/getupdates
Si recentment hem enviat la comanda /llistat obtindrem una resposta com aquesta:
{"ok":true,"result":[{"update_id":825667527,"message":{"message_id":5,"from":{"id":^^9199456,"is_bot":false,
"first_name":"Oriol","username":"Oriol_Boix","language_code":"ca"},"chat":{"id":^^9199456,"first_name":"Oriol",
"username":"Oriol_Boix","type":"private"},"date":1601744308,"text":"/llistat","entities":[{"offset":0,"length":8,
"type":"bot_command"}]}}]}
El format JSON escrit així és pesat de llegir però es pot passar per un formatejador que ens el deixi amb una estructura més fàcil d'entendre. Per exemple, fent servir JSON formatter obtindríem:
{
"ok": true,
"result": [
{
"update_id": 825667527,
"message": {
"message_id": 5,
"from": {
"id": ^^9199456,
"is_bot": false,
"first_name": "Oriol",
"username": "Oriol_Boix",
"language_code": "ca"
},
"chat": {
"id": ^^9199456,
"first_name": "Oriol",
"username": "Oriol_Boix",
"type": "private"
},
"date": 1601744308,
"text": "/llistat",
"entities": [
{
"offset": 0,
"length": 8,
"type": "bot_command"
}
]
}
}
]
}
Observem que, entre les dades enviades, hi ha l'identificador d'usuari (id) que ens serà útil properament. En el nostre cas, l'identificador és:
^^9199456
Per fer proves, també podem enviar missatges des del navegador cap al compte de Telegram. Per exemple la següent:
https://api.telegram.org/bot^^34628844:AAFIpk-e7j3UZtYQYQaTduf4mPhnDqIcNXI/sendMessage?chat_id=^^9199456&text=Missatge enviat des del navegador
Teòricament, cal substituir alguns caràcters especials (espai, %, etc.) pels seus codis hexadecimals amb un % al davant (%20 per a l'espai, %25 per al %, etc.) però, a la pràctica, la majoria de navegadors ja ho canvien automàticament. En el nostre exemple, la comanda que realment s'envia és la següent (%20 és el codi corresponent a l'espai):
https://api.telegram.org/bot^^34628844:AAFIpk-e7j3UZtYQYQaTduf4mPhnDqIcNXI/sendMessage?chat_id=^^9199456&text=Missatge%20enviat%20des%20del%20navegador

Aquesta obra d'Oriol Boix està llicenciada sota una llicència no importada Reconeixement-NoComercial-SenseObraDerivada 3.0.