O tom, ako si poslať na Telegram správu o tom, že server je nedostupný
Niektorí neviete, ale veľa z vás už vie, že existuje taký klient na rýchle správy ako Telegram. V tomto článku si ukážeme ako si spraviť vlastného bota upozorňujúceho na nedostupnosť našej strašne dôležitej stránky.
Filozofia takéhoto upozornenia je, že si „píšete sami so sebou“, čiže bot má oprávnenie posielať správy do vášho osobného účtu. Potom je ešte možný „bot prispievajúci do vášho kanálu“, čiže bot má oprávnenie posielať správy odberateľom vášho kanálu.
Nevyhnutné minimum
Vezmime si takú stránku ako Nahuby.sk. Vypadne server, stránka nejde, hubári sú nervózni. Ako sa o tom dozviem? Napíšem si jednoduché sledovanie dostupnosti, ktoré popri tom ako pošle SMS a e-mail, odošle ešte správu do vášho Telegramu.
Podľa dokumentácie, otvorenie tejto url adresy je nevyhnutné minimum:
https://api.telegram.org/bot[HTTP_API_KEY]/sendMessage?chat_id=[CHAT_ID]&text=[TEXT]
Pričom:
[HTTP_API_KEY]
= Kľúč, ktorý nám vygeneruje účet s názvom BotFather[CHAT_ID]
= IDčko cieľového chatu, alebo (v našom prípade) IDčko účtu v Telegrame[TEXT]
= Posielaná správa
Ako získať API_KEY a CHAT_ID
1. HTTP_API_KEY
Vo vyhľadávaní nájdem účet BotFather a napíšem mu /newbot
. BotFather nás vyzve aby sme vložili meno nášho bota (napr. Oznamovač) a dali mu strojový názov, ktorý musí končiť príponou _bot
, napr obznamovac_bot. Ak všetko spravíte správne, Telegram vám vypľuje [HTTP_API_KEY]
.
2. CHAT_ID
Teraz si vo vyhľadávaní nájdem novo vytvoreného bota obznamovac_bot. Pridám si ho a napíšem mu prvú správu. V prehliadači si otvorím túto adresu (nezabudnite prepísať [HTTP_API_KEY]
za váš kľuč inak to nepôjde):
https://api.telegram.org/bot[HTTP_API_KEY]/getUpdates
Prehliadač otvori text vo formáte json, kde bude ID môjho účtu ([CHAT_ID]
).
Teraz môžem s týmto PHP kódikom odoslať upozornenie, že „niečo“:
$api_key = 'HTTP_API_KEY';
$for_query = [
'chat_id' => 'CHAT_ID',
'text' => 'Nííč, len server je nedostupný.'
];
$response = file_get_contents( 'https://api.telegram.org/bot' . $api_key . '/sendMessage?' . http_build_query( $for_query ) );
Ak vás to zaujalo, tu je k možnostiam API Telegramu obsiahlejší článok v angličtine.