Blog. Just Blog

Как узнать Chat ID Telegram-канала

Версия для печати Добавить в Избранное Отправить на E-Mail | Категория: Web-мастеру и не только | Автор: ManHunter
Как узнать Chat ID Telegram-канала
Как узнать Chat ID Telegram-канала

Chat ID (не путать с идентификатором) Telegram-канала предназначен для отправки сообщений ботом в канал, для управления каналом, а также для интеграции с различными CRM и сервисами. Узнать Chat ID "снаружи", в отличие от упомянутых идентификаторов, нельзя, Telegram закрыл эту возможность в целях безопасности. Для определения Chat ID я нарисовал простенького бота @My_Cyber_Eye_bot. Его надо запустить, а затем переслать боту любое сообщение из интересующего канала. В ответном сообщении бот сообщит вам Chat ID. Обычно идентификатор чата начинается с "-100", не ошибетесь.

Прекрасно знаю, что таких ботов написан уже не один десяток. В чем отличие этого? Во-первых, он гарантированно не пишет никакие логи, не сохраняет никакие записи о переданной ему информации, не шлет рекламу и т.п. Во-вторых, он с открытым исходным кодом, если у вас все-таки остались какие-то сомнения, то можете установить его на своем хосте.
  1. <?
  2. // Токен вашего бота
  3. $bot_token='xxxxxxxxxx:yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy';
  4.  
  5. Header('HTTP/1.1 200 OK');
  6.  
  7. $data=file_get_contents('php://input');
  8.  
  9. if ($json=json_decode($datatrue)) {
  10.     $chat_id='';
  11.     $id='';
  12.     $name='';
  13.  
  14.     if (isset(
  15.             $json['message'],
  16.             $json['message']['chat'],
  17.             $json['message']['chat']['id']
  18.         )) {
  19.         $chat_id=$json['message']['chat']['id'];
  20.  
  21.         if (isset(
  22.                 $json['message'],
  23.                 $json['message']['chat'],
  24.                 $json['message']['chat']['id']
  25.             )) {
  26.  
  27.             $id=$json['message']['chat']['id'];
  28.  
  29.             $name='';
  30.             if (isset($json['message']['chat']['first_name'])) {
  31.                 $name.=$json['message']['chat']['first_name'];
  32.             }
  33.             if (isset($json['message']['chat']['last_name'])) {
  34.                 if ($name!='') {
  35.                     $name.=' ';
  36.                 }
  37.                 $name.=$json['message']['chat']['last_name'];
  38.             }
  39.             if (isset($json['message']['chat']['username'])) {
  40.                 if ($name!='') {
  41.                     $name.=' ('.$json['message']['chat']['username'].')';
  42.                 }
  43.                 else {
  44.                     $name.=$json['message']['chat']['username'];
  45.                 }
  46.             }
  47.         }
  48.  
  49.         if (isset(
  50.                 $json['message'],
  51.                 $json['message']['forward_from_chat'],
  52.                 $json['message']['forward_from_chat']['id']
  53.             )) {
  54.             $id=$json['message']['forward_from_chat']['id'];
  55.             $name=$json['message']['forward_from_chat']['title'];
  56.         }
  57.  
  58.         if (isset(
  59.                 $json['message'],
  60.                 $json['message']['forward_from'],
  61.                 $json['message']['forward_from']['id']
  62.             )) {
  63.             $id=$json['message']['forward_from']['id'];
  64.  
  65.             $name='';
  66.             if (isset($json['message']['forward_from']['first_name'])) {
  67.                 $name.=$json['message']['forward_from']['first_name'];
  68.             }
  69.             if (isset($json['message']['forward_from']['last_name'])) {
  70.                 if ($name!='') {
  71.                     $name.=' ';
  72.                 }
  73.                 $name.=$json['message']['forward_from']['last_name'];
  74.             }
  75.             if (isset($json['message']['forward_from']['username'])) {
  76.                 if ($name!='') {
  77.                     $name.=' ('.$json['message']['forward_from']['username'].')';
  78.                 }
  79.                 else {
  80.                     $name.=$json['message']['forward_from']['username'];
  81.                 }
  82.             }
  83.         }
  84.     }
  85.  
  86.     if ($id!='' && $chat_id!='') {
  87.         $message_text='';
  88.         if ($name!='') {
  89.             $message_text.='Name: <code>'.$name.'</code>'."\n";
  90.         }
  91.         $message_text.='ID: <code>'.$id.'</code>'."\n";
  92.  
  93.         $query=array(
  94.             'chat_id'=>$chat_id,
  95.             'parse_mode'=>'HTML',
  96.             'disable_web_page_preview'=>'true',
  97.             'text'=>$message_text,
  98.         );
  99.  
  100.         $ch=curl_init();
  101.         curl_setopt($chCURLOPT_URL,
  102.             'https://api.telegram.org/bot'.$bot_token.'/sendMessage');
  103.         curl_setopt($chCURLOPT_RETURNTRANSFERtrue);
  104.         curl_setopt($chCURLOPT_HEADERfalse);
  105.         curl_setopt($chCURLOPT_SSL_VERIFYPEERfalse);
  106.         curl_setopt($chCURLOPT_POSTtrue);
  107.         curl_setopt($chCURLOPT_POSTFIELDS$query);
  108.         curl_setopt($chCURLOPT_CONNECTTIMEOUT10000);
  109.         $result=curl_exec($ch);
  110.         curl_close($ch);
  111.     }
  112. }
Для запуска надо только создать бота, как описано в статьях по ссылкам выше, получить токен и прописать его в скрипт. Потом останется закинуть скрипт на свой сервер и установить webhook бота на него.

Поделиться ссылкой ВКонтакте
Просмотров: 401 | Комментариев: 3

Метки: Telegram, PHP

Комментарии

Отзывы посетителей сайта о статье
ManHunter (20.01.2025 в 12:16):
Да кто ж их знает, была, значит, какая-то причина. Хотя если учесть, что получить нужную инфу можно с помощью таких вот простейших движений, то решение весьма странное.
Grey (20.01.2025 в 08:40):
Telegram закрыл эту возможность в целях безопасности.
А какие опасности могут быть помимо "говномёта"?
Ellephant (19.01.2025 в 19:59):
проверил, работает! ID:142899381

Добавить комментарий

Заполните форму для добавления комментария
Имя*:
Текст комментария (не более 2000 символов)*:

*Все поля обязательны для заполнения.
Комментарии, содержащие рекламу, ненормативную лексику, оскорбления и т.п., а также флуд и сообщения не по теме, будут удаляться. Нарушителям может быть заблокирован доступ к сайту.
Наверх
Powered by PCL's Speckled Band Engine 0.2 RC3
© ManHunter / PCL, 2008-2025
При использовании материалов ссылка на сайт обязательна
Время генерации: 0.07 сек. / MySQL: 2 (0.0025 сек.) / Память: 4.5 Mb
Наверх