Получить chat id Telegram

Популярное приложение под названием «Телеграмм» в последнее время стало одним из самых распространенных средств общения. Многие люди говорят, что предпочитают данную сеть по ряду преимуществ, которыми обладает мессенджер. С его помощью можно быстро создать чат, обменяться сообщениями на большом расстоянии и передать файлы любого размера. В нововведенном мессенджере существует такое явление, как Т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 .

Получение данных клиента

Получение имени

  1. Создайте новый сценарий для чат-бота и добавьте экран с блоком Текст с приветствием и просьбой ввести имя.
  2. На этом же экране нажмите + БЛОК → Еще блоки → Имена.
    Раздел Еще блоки содержит готовые интенты.
    Готовый интент Имена будет распознавать российские имена, которые содержатся в системном справочнике $NAME . Когда бот распознает имя, он поместит его в переменную $NAME . Интент Имена принимает только те имена, которые есть в справочнике $NAME . Чтобы распознавать имена, которых нет в справочнике, необходимо дополнить сценарий. Интент Имена в меню блоковЭкран с интентом
  3. Соедините опцию Любая другая фраза с этим же экраном, чтобы бот спрашивал у клиента имя до тех пор, пока клиент его не напишет. Связь с экраном

Если вы общаетесь с клиентом в канале, где уже указано его имя, вы можете получить имя из канала при помощи переменной $rawRequest .

Получение номера телефона

  1. От интента Имена создайте второй экран с блоком Текст и напишите в нем просьбу ввести номер телефона.
  2. На этот же экран добавьте блок Интенты.
  3. Для получения городских и мобильных номеров телефонов скопируйте следующее регулярное выражение:

$regexp<^((8|+7)[- ]?)?((?d<3>)?[- ]?)?[d- ]$>

Внутри $regexp<> вы можете использовать любое регулярное выражение. Чтобы добавлять свои регулярные выражения, используйте синтаксис их написания на языке Java.

  • Вставьте это регулярное выражение в блок Интенты. Сделайте этот пример шаблоном, нажав напротив строки. Иконка изменится на . Шаблон с регулярным выражениемУ вас получится следующий участок сценария: Участок сценария
  • Публикация бота в канале Telegram

    Перейдите к инструкции по подключению канала Telegram и выполните ее шаги, чтобы опубликовать бота.

    После подключения канала Telegram перейдите к следующему шагу этой статьи.

    Получение chat_id

    Чтобы бот отправлял данные клиентов в ваш аккаунт или группу в Telegram, вам нужно получить chat_id аккаунта или группы.

    Для аккаунта

    Для группы

    Если вы хотите отправлять сообщения в группу Telegram, а не в личные сообщения отдельного аккаунта, тогда:

    Экран для получения chat_id группы

    1. Создайте группу в Telegram.
    2. Перейдите в диалог с вашим ботом в Telegram.
    3. Нажмите → Добавить в группу.
    4. Добавьте бота в нужную группу.
    5. Проделайте те же шаги, что и для получения chat_id для аккаунта, только замените выражение в текстовом блоке на $rawRequest.message.chat.id , чтобы получить chat_id группы:

    Отправка данных клиента

    Данные от клиента будут отправляться боту через Telegram API.

    Токен бота

    1. Добавьте в сценарий блок 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 .

        Запрос для отправки данных клиента должен выглядеть следующим образом:

        HTTP-запрос

        Сценарий

      • Соедините вариант Завершен успешно с новым экраном и напишите на нем сообщение об успешной отправке данных.
      • Вариант Завершен с ошибкой соедините с экраном, на который добавьте текст Не удалось получить номер телефона. Ошибка $httpStatus. Если возникнет ошибка и бот пойдет по этой ветке сценария, он выведет сообщение с кодом ошибки. Это поможет вам понять причину ошибки. Подобное сообщение рекомендуется добавлять только при тестировании бота. После того как вы протестировали бота и убедились, что он работает корректно, продумайте, какое сообщение должен получить клиент в случае ошибки.
      • Еще по теме:  Как в Телеграмме сделать чтоб сообщения отправлялись сразу

        Тестирование отправки данных

        Теперь можете протестировать работу сценария.

        Для начала нажмите Опубликовать, чтобы изменения в сценарии отправились в Telegram. После этого нажмите Тестировать.

        Если вы используете один и тот же аккаунт при создании и при тестировании бота, тогда после получения данных бот пришлет их в тот же диалог:

        Пример диалога

        Бот всегда будет присылать полученные данные в чат с аккаунтом, chat_id которого вы указали в запросе.

        Когда реальные клиенты будут отправлять данные боту, он не будет выводить им сообщение с их данными, а отправит его в указанный чат. Чтобы убедиться в этом, вы можете отправить сообщение боту с другого аккаунта.

        Возможные ошибки

        Если при попытке протестировать сценарий в Telegram бот не реагирует на команду /start , возможно, вы не опубликовали бота в этом канале. Убедитесь, что корректно проделали шаги по публикации бота.

        Если при отправке данных клиента возникнет ошибка, бот выведет сообщение с кодом ошибки в чат.

        Ошибка -1

        Данная ошибка возникает, если вы неправильно оформили HTTP-запрос.

        Проверьте, корректно ли вы указали URL. В нем не должно присутствовать пробелов, в том числе в начале и конце URL. Также убедитесь в отсутствии других лишних символов.

        Ошибка 400

        Эта ошибка также говорит о неверном оформлении HTTP-запроса.

        В первую очередь проверьте синтаксис тела запроса на вкладке BODY. В запросе не должны одновременно присутствовать одинарные ‘ ‘ и двойные » » кавычки. Также убедитесь, что в JSON-объекте не пропущены фигурные скобки или запятые.

        Чтобы проверить валидность вашего JSON-объекта, вы можете использовать какой-либо сервис по проверке JSON. Например, JSON Formatter.

        Если ошибок в JSON-объекте нет, попробуйте удалить Telegram-бота в BotFather, создать бота заново и использовать новый токен в HTTP-запросе.

        Дополнение сценария

        Системный справочник $NAME , при помощи которого вы запрашиваете имя клиента, содержит ограниченное количество имен.

        Вы можете скачать справочник и посмотреть его содержимое, перейдя на вкладку Сущности → Системные справочники и нажав Скачать под справочником $NAME .

        Справочник $NAME

        В текущем сценарии, если имя клиента не содержится в системном справочнике $NAME , бот будет снова спрашивать имя у клиента. Чтобы избежать этой ситуации и научить бота принимать любые имена с первого раза, дополните сценарий.

        Любой введенный клиентом текст сохранится в переменную $queryText до следующего запроса.

        Если бот найдет в сообщении клиента сущность $NAME , он присвоит переменной $name значение из справочника. Если бот не найдет сущность в сообщении, в переменную $name он запишет значение $queryText . Получение любого имени

      • Свяжите условие с экраном, на котором вы запрашиваете номер телефона клиента. Получение номера телефона
      • Отредактируйте HTTP-запрос. Вкладка BODY должна содержать следующий JSON-объект:
      • «chat_id»: 123456789, «text»: «Имя клиента: $name, номер телефона: $queryText» >

        HTTP-запрос

        Не забудьте повторно опубликовать сценарий.

        Теперь бот будет принимать за имя любой текст, набранный клиентом в ответ на запрос имени.

        Пример диалога с клиентом:

        Пример диалога

        Сообщение, которое бот отправит на указанный chat_id :

        Сообщение с chat_id

        Вы также можете использовать регулярные выражения для валидации имени. Например, выражение $regexp$> будет принимать слова длиной от двух до пятнадцати символов, состоящие из букв русского алфавита.

        Готовый сценарий

        Так выглядит весь сценарий:

        Источник: help.aimylogic.com

        Бот Телеграм на PHP

        Примеры как зарегистрировать бота в Telegram, описание и взаимодействие с основными методами API. Документация на core.telegram.org и tlgrm.ru (неофициальный, на русском).

        Все запросы к API должны осуществляться по HTTPS, подойдет бесплатный сертификат «Let’s Encrypt».

        Регистрация бота

        Регистрация бота в Telegram

        Следующим сообщением отправляем название для бота, обязательно на конце имени должно быть слово «bot» или «_bot». Ответным сообщением получим токен:

        Получение токена к bot API Telegram

        Тут же можно настроить описание и аватарку:

        /setname Имя
        /setdescription Краткое описание
        /setabouttext Описание бота
        /setuserpic Юзерпик
        Еще по теме:  Узнать информацию по id Telegram

        Далее нужно поставить «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

        Рейтинг
        ( Пока оценок нет )
        Загрузка ...