Популярное приложение под названием «Телеграмм» в последнее время стало одним из самых распространенных средств общения. Многие люди говорят, что предпочитают данную сеть по ряду преимуществ, которыми обладает мессенджер. С его помощью можно быстро создать чат, обменяться сообщениями на большом расстоянии и передать файлы любого размера. В нововведенном мессенджере существует такое явление, как Тelegram id. Что это такое, вы сможете узнать из нашей статьи.
Для чего нужен telegram user id
Перед тем, как узнать, каким образом можно идентифицировать id в популярном на сегодняшний день приложении, нужно разобраться, что такое telegram id. Для быстрой и налаженной работы сервису необходимо моментально распознавать аккаунты, группы и каналы. Для этого и создан id, который представляет собой набор личных данных пользователя.
Важно. Несмотря на то, что люди могут беспрепятственно идентифицировать свой id или другого человека, Телеграмм все же считается самым безопасным сервисом, утечки информации из которого зафиксировано еще не было.
Получение API id и API hash от Telegram | Приложение Телеграм
Как узнать id в telegram
При создании мессенджера разработчики не учли тот факт, что пользователь захочет получить id Телеграмм. В обычных опциях системы этой функции найти невозможно. В старой версии Телеграмма эта опция присутствовала, но создатели удалили ее в целях безопасности пользователей. Опция была удалена еще и по той причине, что данная площадка для обмена сообщениями позиционировала себя как одну из самых безопасных в мире.
Тем не менее, существуют такие ситуации, когда нужно получить данные о Телеграмм id группы, чата или канала. В этом случае на помощь приходят боты. Следует выполнить такой алгоритм действий:
Проверить или выяснить телеграм id можно также с помощью сторонних сервисов. Существуют различные сервисы для получения подобных данных. Например, cmsru/kak-poluchit-chat-id-telegram/ и многие другие, которые можно найти в интернете. Но при этом нужно также отослать сообщение боту со словами: bot token.
Свой telegram user id
Узнать чей-то telegram user id
Узнать id чата telegram
Программисты, разрабатывающие данную программу, не позаботились о том, чтобы человек смог беспрепятственно узнать id telegram chat. Старая версия системы позволяла пользователям видеть айди сразу в пригласительных письмах от сообществ, но сейчас данная функция удалена.
Получить chat id telegram можно также при помощи посторонних ресурсов. Большинство программистов советуют использовать помощник — cmsru/kak-poluchit-chat-id-telegram/. Таким образом, вы сможете получить всю интересующую вас информацию.
Id канала telegram
Также можно найти свой канал в общей базе данных Телеграмма и посмотреть первые цифры url. Это и будет id канала.
Важно. Поменять статус канала на «общедоступный» может только тот человек, который владеет больше, чем пятью ресурсами. В противном случае получить id можно только при помощи специальных ссылок и ботов.
Источник: telegram-rus.ru
Как получить городской номер телефона клиента
В данной статье мы расскажем, как получить от клиента имя и городской либо мобильный номер телефона. Полученные данные будут отправляться в личные сообщения администратора бота в канале Telegram.
Если вам нужно получать только мобильные номера телефонов, вы можете использовать готовый интент Номер телефона или блок phone to $var .
Получение данных клиента
Получение имени
- Создайте новый сценарий для чат-бота и добавьте экран с блоком Текст с приветствием и просьбой ввести имя.
- На этом же экране нажмите + БЛОК → Еще блоки → Имена.
Раздел Еще блоки содержит готовые интенты.
Готовый интент Имена будет распознавать российские имена, которые содержатся в системном справочнике $NAME . Когда бот распознает имя, он поместит его в переменную $NAME . Интент Имена принимает только те имена, которые есть в справочнике $NAME . Чтобы распознавать имена, которых нет в справочнике, необходимо дополнить сценарий. - Соедините опцию Любая другая фраза с этим же экраном, чтобы бот спрашивал у клиента имя до тех пор, пока клиент его не напишет.
Если вы общаетесь с клиентом в канале, где уже указано его имя, вы можете получить имя из канала при помощи переменной $rawRequest .
Получение номера телефона
- От интента Имена создайте второй экран с блоком Текст и напишите в нем просьбу ввести номер телефона.
- На этот же экран добавьте блок Интенты.
- Для получения городских и мобильных номеров телефонов скопируйте следующее регулярное выражение:
$regexp<^((8|+7)[- ]?)?((?d<3>)?[- ]?)?[d- ]$>
Внутри $regexp<> вы можете использовать любое регулярное выражение. Чтобы добавлять свои регулярные выражения, используйте синтаксис их написания на языке Java.


Публикация бота в канале Telegram
Перейдите к инструкции по подключению канала Telegram и выполните ее шаги, чтобы опубликовать бота.
После подключения канала Telegram перейдите к следующему шагу этой статьи.
Получение chat_id
Чтобы бот отправлял данные клиентов в ваш аккаунт или группу в Telegram, вам нужно получить chat_id аккаунта или группы.
Для аккаунта
Для группы
Если вы хотите отправлять сообщения в группу Telegram, а не в личные сообщения отдельного аккаунта, тогда:
- Создайте группу в Telegram.
- Перейдите в диалог с вашим ботом в Telegram.
- Нажмите → Добавить в группу.
- Добавьте бота в нужную группу.
- Проделайте те же шаги, что и для получения chat_id для аккаунта, только замените выражение в текстовом блоке на $rawRequest.message.chat.id , чтобы получить chat_id группы:
Отправка данных клиента
Данные от клиента будут отправляться боту через Telegram API.
- Добавьте в сценарий блок HTTP-запрос и заполните его следующим образом:
- Укажите метод GET .
- В поле URL вставьте URL следующего вида: https://api.telegram.org/bot/sendMessage
- В этом URL вместо параметра подставьте токен, полученный от бота BotFather при создании бота в Telegram:
- На вкладке BODY укажите JSON-объект:
- В поле chat_id вставьте идентификатор, полученный на предыдущем шаге.
- В поле text добавьте текст с переменными, где содержится информация о клиенте, которую вы хотите отправить.
«chat_id»: «113468479», «text»: «Имя клиента: $NAME.name, номер телефона: $queryText» >
Здесь $NAME.name — переменная, в которой хранится имя клиента.
В переменной $queryText хранится полный текст ответа клиента на последний запрос. Если вы хотите сохранить ответ клиента на весь сценарий, создайте новую переменную и присвойте ей значение переменной $queryText .
Запрос для отправки данных клиента должен выглядеть следующим образом:
Тестирование отправки данных
Теперь можете протестировать работу сценария.
Для начала нажмите Опубликовать, чтобы изменения в сценарии отправились в Telegram. После этого нажмите Тестировать.
Если вы используете один и тот же аккаунт при создании и при тестировании бота, тогда после получения данных бот пришлет их в тот же диалог:
Бот всегда будет присылать полученные данные в чат с аккаунтом, chat_id которого вы указали в запросе.
Когда реальные клиенты будут отправлять данные боту, он не будет выводить им сообщение с их данными, а отправит его в указанный чат. Чтобы убедиться в этом, вы можете отправить сообщение боту с другого аккаунта.
Возможные ошибки
Если при попытке протестировать сценарий в Telegram бот не реагирует на команду /start , возможно, вы не опубликовали бота в этом канале. Убедитесь, что корректно проделали шаги по публикации бота.
Если при отправке данных клиента возникнет ошибка, бот выведет сообщение с кодом ошибки в чат.
Ошибка -1
Данная ошибка возникает, если вы неправильно оформили HTTP-запрос.
Проверьте, корректно ли вы указали URL. В нем не должно присутствовать пробелов, в том числе в начале и конце URL. Также убедитесь в отсутствии других лишних символов.
Ошибка 400
Эта ошибка также говорит о неверном оформлении HTTP-запроса.
В первую очередь проверьте синтаксис тела запроса на вкладке BODY. В запросе не должны одновременно присутствовать одинарные ‘ ‘ и двойные » » кавычки. Также убедитесь, что в JSON-объекте не пропущены фигурные скобки или запятые.
Чтобы проверить валидность вашего JSON-объекта, вы можете использовать какой-либо сервис по проверке JSON. Например, JSON Formatter.
Если ошибок в JSON-объекте нет, попробуйте удалить Telegram-бота в BotFather, создать бота заново и использовать новый токен в HTTP-запросе.
Дополнение сценария
Системный справочник $NAME , при помощи которого вы запрашиваете имя клиента, содержит ограниченное количество имен.
Вы можете скачать справочник и посмотреть его содержимое, перейдя на вкладку Сущности → Системные справочники и нажав Скачать под справочником $NAME .
В текущем сценарии, если имя клиента не содержится в системном справочнике $NAME , бот будет снова спрашивать имя у клиента. Чтобы избежать этой ситуации и научить бота принимать любые имена с первого раза, дополните сценарий.
Любой введенный клиентом текст сохранится в переменную $queryText до следующего запроса.
Если бот найдет в сообщении клиента сущность $NAME , он присвоит переменной $name значение из справочника. Если бот не найдет сущность в сообщении, в переменную $name он запишет значение $queryText .

«chat_id»: 123456789, «text»: «Имя клиента: $name, номер телефона: $queryText» >
Не забудьте повторно опубликовать сценарий.
Теперь бот будет принимать за имя любой текст, набранный клиентом в ответ на запрос имени.
Пример диалога с клиентом:
Сообщение, которое бот отправит на указанный chat_id :
Вы также можете использовать регулярные выражения для валидации имени. Например, выражение $regexp$> будет принимать слова длиной от двух до пятнадцати символов, состоящие из букв русского алфавита.
Готовый сценарий
Так выглядит весь сценарий:
Источник: help.aimylogic.com
Бот Телеграм на PHP
Примеры как зарегистрировать бота в Telegram, описание и взаимодействие с основными методами API. Документация на core.telegram.org и tlgrm.ru (неофициальный, на русском).
Все запросы к API должны осуществляться по HTTPS, подойдет бесплатный сертификат «Let’s Encrypt».
Регистрация бота
Следующим сообщением отправляем название для бота, обязательно на конце имени должно быть слово «bot» или «_bot». Ответным сообщением получим токен:
Тут же можно настроить описание и аватарку:
/setname | Имя |
/setdescription | Краткое описание |
/setabouttext | Описание бота |
/setuserpic | Юзерпик |
Далее нужно поставить «Webhook» чтобы все сообщения из Telegram приходили на PHP скрипт ( https://example.com/bot.php ). Для этого нужно пройти по ссылке в которой подставлены полученный токен и адрес скрипта. https://api.telegram.org/bot /setWebhook?url= https://example.com/bot.php
В ответе будет
При смене токена, установку вебхука нужно повторить.
Входящие сообщения
Сообщения приходят POST-запросом, с типом application/json . Получить его в PHP можно следующим образом:
$data = file_get_contents(‘php://input’); $data = json_decode($data, true);
Чтобы посмотреть входящие данные, их придется дампить в файл:
file_put_contents(__DIR__ . ‘/message.txt’, print_r($data, true));
Текстовое сообщение
Запрос от Телеграм:
Array ( [update_id] => 17584194 [message] => Array ( [message_id] => 26 [from] => Array ( [id] => 123456789 [is_bot] => [first_name] => UserName [language_code] => ru-US ) [chat] => Array ( [id] => 123456789 [first_name] => UserName [type] => private ) [date] => 1541888068 [text] => Привет бот! ) )
Получим текст сообщения:
if (!empty($data[‘message’][‘text’]))
Фотографии
При отправки фото боту, на скрипт приходит массив превьюшек, последним элементом будет оригинальное фото.
Максимальный размер файла 20МБ.
Запрос от Телеграм:
Array ( [update_id] => 17584194 [message] => Array ( [message_id] => 38 [from] => Array ( [id] => 123456789 [is_bot] => [first_name] => UserName [language_code] => ru-US ) [chat] => Array ( [id] => 123456789 [first_name] => UserName [type] => private ) [date] => 1541924962 [photo] => Array ( [0] => Array ( [file_id] => AgADAgADUqexG7u8OEudBvlhgMzKC1agOQ8ABC6Bx26USA7Mw3gAAgI [file_size] => 1196 [width] => 51 [height] => 90 ) [1] => Array ( [file_id] => AgttAgADUqoxG7u8OEudBvlhgMzKC1agOQ8ABKwp_3jDPrIlxHgAAgI [file_size] => 21146 [width] => 180 [height] => 320 ) [2] => Array ( [file_id] => AgADAgADUqyxG7u8OEudBvlhgMzKC1agOQ8ABAN8gJWpUT1MxXgAAgI [file_size] => 90940 [width] => 449 [height] => 800 ) [3] => Array ( [file_id] => AgADAgADUqouu7u8OEudBvlhgMzKC1agOQ8ABIqVC1nEpbLDwngAAgI [file_size] => 114363 [width] => 719 [height] => 1280 ) ) ) )
Чтобы скачать файл нужно отправить POST или GET запрос на получение c параметром file_id изображения по URL: https://api.telegram.org/bot /getFile В ответ придет информация о файле:
Array ( [ok] => 1 [result] => Array ( [file_id] => AgADAgADUqoxG5u88E0dBvlhgMzKC1agOQ8ABIqVC1nEpbLDwngAAgI [file_size] => 114363 [file_path] => photos/file_1.jpg ) )
Далее его можно скачать по ссылке: https://api.telegram.org/file/bot / В PHP сохранение файла на сервер можно реализовать следующим образом:
$token = ‘123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11’; if (!empty($data[‘message’][‘photo’])) < $photo = array_pop($data[‘message’][‘photo’]); $ch = curl_init(‘https://api.telegram.org/bot’ . $token . ‘/getFile’); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, array(‘file_id’ =>$photo[‘file_id’])); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HEADER, false); $res = curl_exec($ch); curl_close($ch); $res = json_decode($res, true); if ($res[‘ok’]) < $src = ‘https://api.telegram.org/file/bot’ . $token . ‘/’ . $res[‘result’][‘file_path’]; $dest = __DIR__ . ‘/’ . time() . ‘-‘ . basename($src); copy($src, $dest); >>
Документ
Запрос от Телеграм:
Array ( [update_id] => 17474201 [message] => Array ( [message_id] => 44 [from] => Array ( [id] => 123456789 [is_bot] => [first_name] => UserName [language_code] => ru-US ) [chat] => Array ( [id] => 123456789 [first_name] => UserName [type] => private ) [date] => 1541925844 [document] => Array ( [file_name] => IMG_7947.JPG [mime_type] => image/jpeg [thumb] => Array ( [file_id] => AAQCABMNv_QOAATwQugveIZBldZ3AAIC [file_size] => 2644 [width] => 67 [height] => 90 ) [file_id] => BQADAgADtQEAAqu9OEhzn2cEz8LpkgI [file_size] => 1976218 ) ) )
Скачивание файлов происходит по такой же схеме как у фотографий.
if (!empty($data[‘message’][‘document’])) < $file_id = $data[‘message’][‘document’][‘file_id’]; $ch = curl_init(‘https://api.telegram.org/bot’ . $token . ‘/getFile’); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, array(‘file_id’ =>$file_id)); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HEADER, false); $res = curl_exec($ch); curl_close($ch); $res = json_decode($res, true); if ($res[‘ok’]) < $src = ‘https://api.telegram.org/file/bot’ . $token . ‘/’ . $res[‘result’][‘file_path’]; $dest = __DIR__ . ‘/’ . time() . ‘-‘ . basename($src); copy($src, $dest); >>
Ответы бота
Отправка текста
$response = array( ‘chat_id’ => $data[‘message’][‘chat’][‘id’], ‘text’ => ‘Хай!’ ); $ch = curl_init(‘https://api.telegram.org/bot’ . $token . ‘/sendMessage’); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $response); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HEADER, false); curl_exec($ch); curl_close($ch);
Отправка картинки
$response = array( ‘chat_id’ => $data[‘message’][‘chat’][‘id’], ‘photo’ => curl_file_create(__DIR__ . ‘/image.png’) ); $ch = curl_init(‘https://api.telegram.org/bot’ . $token . ‘/sendPhoto’); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $response); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HEADER, false); curl_exec($ch); curl_close($ch);
Отправка файла
Пример скрипта
Источник: snipp.ru