Webstránky

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].

Telegram Desktop client BotFather chat

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]).

Ako najde 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.