Получить имя пользователя Telegram bot

Большинство современных мессенджеров предоставляют своим пользователям API, предназначенные для различных задач. На примере Telegram посмотрим, как работать с API, что они умеют и чем могут быть полезны.

Если вы не зарегистрированы в Telegram — самое время зарегистрироваться. Вы можете не пользоваться аккаунтом в повседневности, но для учёбы он необходим. Возможно, вам будет удобно работать через десктопную версию приложения, её можно скачать с официального сайта: https://telegram.org/.

API в Telegram

У мессенджера Telegram есть два API — Bot API и Client API.

  • Bot API предназначен для работы с ботами.
  • Client API позволяет управлять вашим аккаунтом: отправлять от вашего имени сообщения, вступать в группы или изменять информацию в своём профиле.

Начнём с Client API.

Управление аккаунтом через Client API

Для работы с Client API необходима аутентификация по токену, получить его можно на специальном сайте Telegram.

Получение токена для Client API

Зайдите на https://my.telegram.org и введите номер телефона, привязанный к вашему аккаунту:

✅ Бесплатные пранк звонки у нас в боте!

Запустите Telegram: вам придёт код подтверждения для сайта, введите его в поле на сайте и нажмите кнопку Next.

В открывшемся окне нажмите на ссылку API development tools и введите данные для создания нового приложения. Заполните как минимум поля App title, Short name и укажите платформу: Web.

В следующем окне скопируйте и сохраните значения api_id и api_hash.

Готово! Эти идентификаторы вы перенесёте в код, они будут передаваться в Client API с каждым вашим запросом — и Client API опознает вас как владельца определённого аккаунта.

Программный клиент Telegram

Отправлять запросы к Client API можно через ваш Telegram-клиент на телефоне или на компьютере или через программный клиент.

Для работы с Client API существует несколько популярных Python-библиотек, которые эмулируют работу приложения. С чем-то подобным вы сталкивались в теме «Тестирование Django»: класс Client() в тестах эмулировал работу браузера, отправляя запросы и получая ответы от сервера.

Для создания программного клиента возьмём библиотеку pyrogram.

Создайте директорию /client_api, перейдите в неё, установите и активируйте виртуальное окружение, установите библиотеку pyrogram :

mkdir client_api # Создаём директорию cd client_api # Переходим в эту директорию python3 -m venv venv # Создаём виртуальное окружение . venv/bin/activate # Активируем виртуальное окружение # Для Windows команда source venv/Scripts/activate pip3 install pyrogram # Устанавливаем библиотеку

Еще по теме:  Это не факт Телеграм канал

Создайте и откройте файл /client_api/main.py в текстовом редакторе, перенесите в него код:

from pyrogram import Client api_id = api_hash = «» with Client(«my_account», api_id, api_hash) as app: # Первый параметр метода send_message — id (int) или имя (str) того пользователя, # которому будет отправлено сообщение. # Зарезервированное слово «me» означает ваш собственный аккаунт. app.send_message(«me», «Привет, это я!»)

Сохраните файл и запустите его:

python3 main.py

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

Из вашего приложения будет отправлено сообщение. «me» — это зарезервированное слово, заменяющее ID аккаунта, для которого выдан токен. Следовательно, сообщение будет отправлено из вашего аккаунта в ваш аккаунт; оно отобразится во вкладке «Избранное» в вашем мессенджере.

Если изменить «me» на ID аккаунта вашего друга в Telegram, то сообщение уйдёт ему.

Начните диалог с ботом: нажмите кнопку Start.

Для начала бот отправит вам информацию о вашем аккаунте: ID, имя (то, что указано в полях First и Last name) и язык.

Если Telegram запущен на мобильном устройстве — вызовите меню долгим нажатием на сообщение и проделайте всё то же самое.

В ответ бот отправит информацию о пользователе: ID, имя (First name) и фамилию (Last name).

Список всех доступных методов библиотеки pyrogram доступен в документации.

Не увлекайтесь рассылкой сообщений через бота: в Client API есть лимит по количеству запросов. Если вы будете слишком часто отправлять сообщения, Telegram может принять вас за злоумышленника-спамера и забанить, лишить доступа к сервису. Telegram не раскрывает точных ограничений.

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

Похожие записи:

  1. Бот в Telegram
  2. Библиотека python-telegram-bot
  3. Инструментарий для тестирования API
  4. Unittest в Django: тестирование URLs

Источник: mob25.com

Авторизация через Telegram бота

Всем привет. Давно ничего не писал, так как не было никаких идей, но недавно, 31 мая 2019 года, Telegram выпустил новое обновление, в котором добавил новый тип данных — LoginUrl. Итак, попробую объяснить идею авторизации с помощью Telegram бота. Для начала, чтобы бот мог писать пользователю, пользователь должен отправить сообщение /start. Бот может как угодно ответить на это сообщение, например обычным приветствием или набором кнопок для взаимодействия с ботом. Именно кнопками мы и будем пользоваться для авторизации, но об этом чуть позже. Пользователь жмет на нашу кнопку, после чего перед ним появляется окошко с подтверждением действия. Если пользователь подтверждает свое действие, то он переходит на указанный в параметрах url с данными своего аккаунта, в том числе и уникальный id для пользователя.

  • chat_id — в данном случае id пользователю, которому мы отправляем сообщение. Получаем от Telegram в методе getUpdates или с помощью Webhook.
  • text — текст сообщения. В данном случае он нам не нужен, так как мы будем использовать кнопку. Но если хотите объясниться перед пользователем, то это идеальный момент.
  • parse_mode — Указывает формат отправляемого сообщения. Поддерживаются Markdown и HTML.
  • disable_web_page_preview — Отключает превью для ссылки в данном сообщении.
  • disable_notification — Отправка сообщение без уведомления для юзера.
  • reply_to_message_id — Указывает на id сообщения, которое мы цитируем.
  • reply_markup — Добавляет кнопки.
Еще по теме:  Можно ли в Телеграмм канале посмотреть кто посмотрел пост

Как можно было догадаться, нам необходимы chat_id и reply_markup. reply_markup принимает параметры в виде json массива с указанием типа кнопок и их параметров. Мы будем использовать inline_keyboard, так как они поддерживают LoginUrl. Ну давайте создадим простую кнопку:

$keyboard = Array( ‘inline_keyboard’ => [ [ [‘text’ => ‘Нажми меня’, ‘login_url’ => [ ‘url’ => ‘https://web-wost.ru’ ] ] ] ] );

Не забываем перевести данную кнопку в json:

$keyboard_json = json_encode($keyboard);

Ну и отправляем:

file_get_contents(‘https://api.telegram.org/bot’ . $token . ‘/sendMessage?chat_id=’ . $id . ‘reply_markup=’ . $keyboard_json);

Не забываем так же создать переменные $token с токеном бота и $id с указанием id пользователя. Если всё сделано верно, то после выполнения данного php скрипта, бот отправит пользователю сообщение с кнопкой ‘Нажми меня’. После нажатия на кнопку, пользователя спросят разрешение об отправке данных и переходе по ссылке. Получаем данные от пользователя с помощью REQUEST:

$user_id = $_REQUEST[‘id’]; $username = $_REQUEST[‘username’]; $hash = $_REQUEST[‘hash’];

В принципе так мы получаем необходимые данные о пользователе, но их можно легко подменить. Для безопасности передачи данных Telegram отправляет нам hash. Для его проверки воспользуемся следующим кодом:

$data = $_REQUEST; $hash = $data[‘hash’]; unset($data[‘hash’]); $new_data = []; foreach($data as $key => $value) $new_data[] = $key . ‘=’ . $value; sort($new_data); $data_string = implode(‘n’, $new_data); $secret_hash = hash(‘sha256’, $token, true); $new_hash = hash_hmac(‘sha256’, $data_string, $secret_hash); if(strcmp($hash, $new_hash) !== 0) exit(‘Подмена данных. ‘); echo ‘Привет ‘ . $data[‘username’];

Попробую разобрать данный код. Сначала мы записываем все полученные данные в переменную $data, далее сохраняем hash в специальную переменную($hash) и удаляем его из массива данных $data. Создаем новый пустой массив($new_data) для наших данных. Используя foreach, мы проходим через все полученные данные, записывая их в наш новый массив($new_data), сохраняя ключ=значение. Сортируем по алфавиту, превращаем в строку $data_string, записывая элементы через n. Хешируем наш токен($secret_hash), а дальше и все наши данные($new_hash). И последним шагом является проверка подлинности хэша.

Еще по теме:  1 владельца Телеграмма его все его все все его его группы по фотке

Ну и осталось лишь осмотреть все параметры объекта LoginUrl:

  • url — указывает url, куда будет отправлен пользователь после нажатия на ссылку.
  • forward_text — текст кнопки в пересылаемых сообщениях.
  • bot_username — имя бота, через которого будет происходить авторизация.
  • request_write_access — запрос на возможность ботом писать пользователю сообщения.

На этом я заканчиваю, надеюсь эта запись будет полезна 🙂

1 комментариий

Татьяна 2023-07-28 20:21:43 Ничего, к сожалению, не поняла

Новый комментарий

  • О проекте
  • Отправить публикацию
  • Реклама на сайте
  • Условия пользования

Источник: web-wost.ru

API Telegram Bot и PHP — Отправка сообщений

api telegram bot

Не так давно появилась необходимость реализовать отправку сообщений с сайта в Telegram Бот. Ранее описывал работу с API VK, где в случае получении капчи отправлялось сообщение на почту. Этот вариант меня не совсем устроил, бывают задержки, по этому решил освоить API Telegram. Всё достаточно просто, необходимо только создать Telegram Bot, получить ключ (он же token) и ID чата. Дальше просто отправляем сообщение по средствам PHP.

API Telegram Bot и PHP — Отправка сообщений

Создаём Telegram Bot.

api telegram bot создаём бота

1. Для начала пишем сообщение «/start«. Нам в ответ вернут все возможные команды бота.

2. Отправляем боту команду «/newbot«.

3. Нам предлагают ввести имя нашего бота. Тут как вам будет угодно, я назвал «PechnekTest».

4. Теперь нам необходимо выбрать имя пользователя для бота, главное, что бы название нашего бота заканчивалось на «bot» (например TestBot или Test_bot). В моём случае «PechnekTest_Bot»

5. После всего мы увидим поздравления и наш токен.

6. Теперь добавляем в друзья нашего бота. Можно искать по имени что мы задали ранее.

Получаем Chat ID Telgram Bot -а.

Для того, что бы нам отправлять сообщения, нам необходимо узнать «chat id«, если по-простому, то идентификатор нашего чата. Для этого нам необходимо проделать ряд действий:

1. Написать что-то нашему боту, абсолютно любое сообщение. Нужно это для того, что бы мы могли достать наш chat id. Без этого метод API Telegram вернёт нам пустое значение.

2. В браузере выполняем следующую команду:

Источник: pechenek.net

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