Ghjdthbnm njrty Телеграм бота

У нас есть 26 ответов на вопрос Как узнать код бота в Телеграм? Скорее всего, этого будет достаточно, чтобы вы получили ответ на ваш вопрос.

  • Как вытащить код бота Телеграм?
  • Как узнать ID бота в телеграмме?
  • Как получить токен Телеграм бота?
  • Как узнать свой код в телеграмме?
  • Как подключить чат бот?
  • Как активировать бота в канале Телеграм?
  • Как узнать код бота в Телеграм? Ответы пользователей
  • Как узнать код бота в Телеграм? Видео-ответы

Отвечает Евгений Гаврилов

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

Как вытащить код бота Телеграм?

1 ответВ телеграмме ищем бота с именем BotFather (отец ботов)И пишем ему /start.Далее /newbot.Он попросит нас придумать боту имя и логинМного много раз он будет говорить что этот логин уже занятИ в конце выдаст нам токен нашего бота.16 июл. 2020 г.

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

Как получить токен Телеграм бота?

Как узнать свой код в телеграмме?

Как в Telegram узнать свой IDДля этого, откройте Telegram, и в строке поиска введите userinfobot :После чего, выберите бота, как на скрине:Активируйте диалог с ним, и нажмите на кнопку Start :В итоге, следующим же сообщением вы получите информацию о вашем Telegram аккаунте: login, id, имя, фамилию :15 нояб. 2019 г.

Создание телеграм бота который проверяет подписку на Node.js

Как подключить чат бот?

Чат-боты можно подключить практически к любому популярному мессенджеру или социальной сети.Пример работы чат-бота . Нужен именно тот бот, напротив которого есть синяя «галочка». . Нажмите кнопку «Начать». . Нажмите на команду /newbot. . Придумайте и введите имя для вашего бота. . Придумайте никнейм боту. . Новый бот создан.

Как активировать бота в канале Телеграм?

Заходим в телеграм-канал, нажимаем на три точки и выбираем «Управление каналом». Выбираем графу «Администраторы», чтобы назначить бота. В поле прописываем ссылку на бота и выбираем нужного. Там может появиться множество ботов и не только.

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

Telegram бот на PHP

Telegram бот на PHP

Заметки айтишника

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

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

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

Система ОПЛАТЫ в Телеграм | Проверка подписки на канал | Телеграм Бот на Python | AIOgram, Python

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

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

/setname Имя
/setdescription Краткое описание
/setabouttext Описание бота
/setuserpic Юзерпик
Еще по теме:  Активировать присоединение по заявкам Телеграмм

Далее нужно поставить «Webhook» чтобы все сообщения из Telegram приходили на PHP скрипт ( 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 ) )

Далее его можно скачать по ссылке:

В 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);

Отправка файла

Пример скрипта

Скрипт простейшего бота. Он отвечает на вопросы и сохраняет файлы и изображение на сервере.

define(‘TOKEN’, ‘123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11’); // Функция вызова методов API. function sendTelegram($method, $response) < $ch = curl_init(‘https://api.telegram.org/bot’ . TOKEN . ‘/’ . $method); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $response); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HEADER, false); $res = curl_exec($ch); curl_close($ch); return $res; >// Прислали фото. if (!empty($data[‘message’][‘photo’])) < $photo = array_pop($data[‘message’][‘photo’]); $res = sendTelegram( ‘getFile’, array( ‘file_id’ =>$photo[‘file_id’] ) ); $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); if (copy($src, $dest)) < sendTelegram( ‘sendMessage’, array( ‘chat_id’ =>$data[‘message’][‘chat’][‘id’], ‘text’ => ‘Фото сохранено’ ) ); > > exit(); > // Прислали файл. if (!empty($data[‘message’][‘document’])) < $res = sendTelegram( ‘getFile’, array( ‘file_id’ =>$data[‘message’][‘document’][‘file_id’] ) ); $res = json_decode($res, true); if ($res[‘ok’]) < $src = ‘https://api.telegram.org/file/bot’ . TOKEN . ‘/’ . $res[‘result’][‘file_path’]; $dest = __DIR__ . ‘/’ . time() . ‘-‘ . $data[‘message’][‘document’][‘file_name’]; if (copy($src, $dest)) < sendTelegram( ‘sendMessage’, array( ‘chat_id’ =>$data[‘message’][‘chat’][‘id’], ‘text’ => ‘Файл сохранён’ ) ); > > exit(); > // Ответ на текстовые сообщения. if (!empty($data[‘message’][‘text’])) < $text = $data[‘message’][‘text’]; if (mb_stripos($text, ‘привет’) !== false) < sendTelegram( ‘sendMessage’, array( ‘chat_id’ =>$data[‘message’][‘chat’][‘id’], ‘text’ => ‘Хай!’ ) ); exit(); > // Отправка фото. if (mb_stripos($text, ‘фото’) !== false) < sendTelegram( ‘sendPhoto’, array( ‘chat_id’ =>$data[‘message’][‘chat’][‘id’], ‘photo’ => curl_file_create(__DIR__ . ‘/image.jpg’) ) ); exit(); > // Отправка файла. if (mb_stripos($text, ‘файл’) !== false) < sendTelegram( ‘sendDocument’, array( ‘chat_id’ =>$data[‘message’][‘chat’][‘id’], ‘document’ => curl_file_create(__DIR__ . ‘/test.txt’) ) ); exit(); > >

  • ← Как сбросить root-пароль Linux-сервера
  • Авторизация на сайте через Google →

Источник: it-stories.ru

Telegram Web App bot: разбор и аспекты безопасности June 14, 2022 on Savely Krasovsky’s blog

Виды кнопок

Первый и второй способ предлагают нам аутентифицировать и авторизовать пользователя через специальный объект initData , который можно достать с помощью JavaScript. Объект имеет следующую структуру:

Проблема в том, что официальная документация хоть и предупреждает, но не особо объясняет зачем валидировать поле initData на сервере бота.

TL;DR

Мэллори: Привет Боб, я Алиса, дай мне информацию о балансе и сделай перевод на имя Мэллори.

Боб: Пожалуйста, Алиса, всё готово.

Мэллори: Привет Боб, я Алиса, дай мне информацию о балансе и сделай перевод на имя Мэллори.

Боб: Предоставьте, пожалуйста, валидную подпись Алисы.

Мэллори разводит руками

То есть нужно это затем, чтобы произвести безопасную аутентификацию (проверку подлинности запроса) и авторизацию (понять, что к боту пришла именно Алиса, а не Мэллори).

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

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

Еще по теме:  Делаем шаринг поста в Телеграмм

Валидация, к слову, не совсем тривиальная. Разработчики Telegram, как обычно, не поленились и вместо проверенного стандарта JSON Web Token (JWT), реализовали свой собственный велосипед, да ещё и на базе обычного HMAC-SHA256 (то есть HS256 будь у нас JWT-токен). В результате initData представляет собой URL-encoded строку query-параметров. Для корректной валидации которой требуется следующая цепочка шагов:

  1. Декодируем строку, используя URL-encoding (важно, иначе значение с ключом user останется не декодированным).
  2. Полученные пары ключ-значения сортируем в алфавитном порядке.
  3. Исключаем ключ hash
  4. Из полученных пар составляем тело вида: auth_date=nquery_id=nuser= . Важно сохранить значение с ключом user в чистом JSON.
  5. Берем хэш от токена вашего бота с помощью алгоритма HMAC-SHA256 с ключом WebAppData .
  6. Берем хэш от полученного в шаге 4 тела с помощью того же алгоритма, а в качестве ключа используем хэш, полученный ранее в виде последовательности байтов (а не hex-репрезентации!).
  7. Преобразуем полученный хэш в hex-строку и сравниваем со значением ключа hash .

По аналогии с JWT, если валидация прошла успешно, пользователя можно считать аутентифицированным и переходить к авторизации с помощью предоставленного payload (в нашем случае это id в объекте user ).

Вид такого сообщения

— требуется собственный бэкенд для веб-части для валидации initData и работы с пользователем

Keyboard-кнопка

С первым и вторым способом всё понятно: вы получаете от Telegram подобие готового токена и поэтому реализация собственной аутентификации и авторизации не требуется, требуется только валидация.

Но с третьим способом ситуация с одной стороны проще, с другой сложней. Дело в том, что initData не приходит и наладить общение с серверной частью не выйдет. Ведь вы не будете знать кто к вам пришёл.

Однако при использовании этого способа появляется возможность использовать метод Telegram.WebApp.sendData() , который позволяет отправить сообщение боту напрямую, а тот предоставит его вам через long-polling или вебхуки. Стоит учесть, что после успешного выполнения веб-окно автоматически закроется, а бот отрапортует сервисным сообщением Вы успешно передали данные боту кнопкой «Test button».

Поэтому Telegram позиционирует этот способ как удобный способ сделать гибкую веб-форму ввода с полями типа date picker . Вернуть значения формы можно с помощью метода Telegram.WebApp.sendData() .

Нужно понимать, что в JS-файле этот метод является лишь прослойкой, само значение, переданное в sendData() отправляются далее через MTProto-метод sendWebAppData . Методы MTProto невозможно использовать без авторизации в Telegram, поэтому тут мессенджер берет безопасность полностью на себя.

В этом заключается плюс этого метода.

+ удобно для заполнения сравнительно простых форм ввода
+ наличие собственного бэкенда для Web-части не требуется

— initData не приходит, возможность авторизовать пользователя на своём бэкенде (даже если он есть) отсутствует
— отправить информацию боту можно только 1 раз

Кнопка в меню вложений

Есть также четвертый способ, который технически не отличается от первого и второго (только дополнительными полями в initData ), но в этом случае бот добавляется в меню вложений.

Вид такого сообщения

+ плюсы первых двух способов
+ возможность использовать бота в переписке с человеком
+ новый интуитивный механизм использования ботов Telegram

Источник: krasovs.ky

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