Бот для чата в Телеграмме показывающий id

В большинстве инструкций по работе с телеграм-ботом не сказано про то, как получить тот самый RECIPIENT_CHAT_ID , в который надо слать сообщения из PHP.

Вот типичный пример отправки сообщения из Laravel-приложения в Телеграм:

Route::post(‘bot/sendmessage’, function() < Telegram::sendMessage([ ‘chat_id’ =>’RECIPIENT_CHAT_ID’, ‘text’ => ‘Привет, мир!’ ]); return; >);

Предположим, что наша задача — слать уведомления пользователю в телеграм, если на сайте ему ответили на комментарий. Такое уведомление нужно отправлять только конкретному пользователю, а не всем сразу.

Простой способ для привязки пользователя на сайте и чата с ботом в телеграме — использование ссылки-инвайта для добавления чат-бота. Вы даёте пользователю специальную ссылку с параметром, и когда он на неё кликает — открывается чат с ботом, бот получает инструкцию «начать работу» и отправляет информацию на сервер вместе с тем самым параметром из ссылки, а также CHAT_ID . По этому параметру вы находите в своей базе пользователя и назначаете ему CHAT_ID .

Показываем пользователю на сайте ссылку:

https://telegram.me/arutyunov_bot?start=asd123

Когда пользователь перейдёт по ссылке, у него откроется чат 1-на-1 с ботом. Как только пользователь нажмёт кнопку Start, бот получит сообщение вида:

/start PAYLOAD

Вместо PAYLOAD и будет тот самый токен. В нашем примере это asd123 . Теперь вам нужно обработать это сообщение на своём сервере.

Вот пример для обработчика, который привязан к Webhook:

if ($message->getText()) < if (strpos(‘/start’, $message->getText()) !== false) < $textStrings = explode(‘ ‘, $message->getText()); if (isset($textStrings[1])) < $token = $textStrings[1]; $chatId = $message->getChat()->getId(); if ($token) < $user = User::find([‘telegram_token’ =>$token]); if ($user !== null) < $user->telegram_chat_id = $chatId; return response()->json([‘status’ => $user->save()]); > > > > >

В официальной документации Телеграм есть описание этого механизма, который называется Deep linking .

В телеграме каждый чат имеет свой уникальный CHAT_ID . Обратите внимание, что чат с ботом будет иметь числовой CHAT_ID больше 0, а если вы добавили бота в группу, то CHAT_ID будет отрицательный.

Источник: arutyunov.me

Как написать в ТГ по Айди

Возникает необходимость связаться с пользователем в Telegram, используя его ID? Не беда! В этой статье мы расскажем, как написать сообщение пользователю в Telegram веб- или десктоп-версии, исходя из его ID. Мы поделимся несколькими методами и пошаговой инструкцией для выполнения данной задачи.

  1. Зачем нужно знать ID пользователя в Telegram
  2. Как найти ID пользователя в Telegram
  3. Значение ID пользователя в Telegram
  4. Как указать свой Telegram ID
  5. Полезные советы и выводы
Еще по теме:  Rtl символы в Телеграм что это

Зачем нужно знать ID пользователя в Telegram

Информация об ID пользователя необходима для настройки ботов, которые взаимодействуют с пользователями или группами чатов в Telegram. При использовании Telegram API для отправки сообщений боту потребуется знать ID чата, в который он будет писать. Это важно для обеспечения корректной работы и связи с конкретными пользователями.

Как найти ID пользователя в Telegram

Существует несколько способов найти ID пользователя в Telegram. Рассмотрим один из них:

  1. Откройте диалог с пользователем, ID которого вы хотите узнать.
  2. Нажмите на значок «Прикрепить» (иконка в виде скрепки) в правом верхнем углу окна чата.
  3. В появившемся меню выберите опцию «TestAttachment» (или аналогичную).
  4. Прокрутите вниз до конца страницы, где появится JSON-объект с данными, включая ID пользователя.

Значение ID пользователя в Telegram

Айди пользователя в Telegram — это уникальный номер, присваиваемый аккаунту при его создании и сохраняемый в системе даже при изменении номера телефона, никнейма или аватара. Таким образом, по ID пользователя всегда можно идентифицировать аккаунт в Telegram.

Как указать свой Telegram ID

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

  1. Откройте меню Telegram и перейдите в настройки (Settings).
  2. Выберите пункт «Изменить профиль» (Edit Profile).
  3. Нажмите на ваше имя пользователя.
  4. В открывшемся окне редактирования профиля вы найдете готовую ссылку на ваш профиль.
  5. Нажмите на ссылку, чтобы скопировать ее в буфер обмена.
  6. Теперь вы можете вставить эту ссылку и поделиться ею с другими пользователями.

Полезные советы и выводы

  • Используйте Telegram ID для настройки и работы с ботами, связанными с пользователями и чатами в Telegram.
  • При необходимости узнать ID пользователя в Telegram, используйте описанный выше метод.
  • Telegram ID является уникальным номером аккаунта, который не меняется при изменении других данных профиля.
  • Указывайте свой Telegram ID в профиле, чтобы другие пользователи могли связываться с вами.

Надеемся, что эта статья помогла вам разобраться, как написать в Telegram по ID пользователя. Вы можете использовать данную информацию для связи с вашими контактами или для настройки ботов в Telegram.

Еще по теме:  Как найти скрытого пользователя в Телеграмм

Как узнать ник в телеграмме по ID

Если вы хотите написать пользователю в Telegram, используя его ID, есть несколько вариантов.

Также можно воспользоваться ссылкой вида https://t.me/username, где username — это имя пользователя или его ID.

Если вы пользуетесь десктопной версией Telegram, откройте приложение и введите в поисковую строку ID пользователя. Выберите его из списка результатов поиска и нажмите кнопку «Написать сообщение».

Учтите, что для того, чтобы написать сообщение пользователю, вы должны знать его ID или имя пользователя.

  • Как настроить безопасность в Телеграм
  • Как запретить скачивание файлов в телеграмме

Источник: telegramy.ru

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

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

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

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

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

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

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

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

/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

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