Telegram python bots

Теги: python  bots 

Bot API

Что умеет?

  • Replace Entire Websites
  • Receive Payments
  • Create Custom Tools
  • Integrate with Other Services
  • Host Games
  • Build Social Networks

Боты Telegram — это специальные аккаунты, для настройки которых не требуется номер телефона. Боты подключены к серверу своего владельца, который обрабатывает входные данные и запросы от пользователей. Промежуточный сервер Telegram обрабатывает все шифрование и связь с Telegram API. Разработчики общаются с этим сервером через простой HTTPS-интерфейс с упрощенной версией Telegram API — известной как Bot API.

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

  • У ботов нет статусов «последний визит» или «онлайн» — вместо этого они показывают ярлык «бот» в чате.
  • Боты имеют ограниченное облачное хранилище — старые сообщения могут быть удалены сервером вскоре после их обработки.
  • Боты не могут начать общение с пользователями. Пользователь должен либо добавить их в группу, либо сначала отправить им сообщение. Люди могут найти имя пользователя вашего бота или начать чат по его уникальной ссылке t.me/bot_username.
  • По умолчанию боты, добавленные в группы, видят только соответствующие сообщения в чате.

Фичи

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

  • Commands, которые выделяются в сообщениях и могут быть выбраны из списка после ввода / (до 32 символов латиницей).
  • Keybords, которые заменяют клавиатуру пользователя с предопределенными вариантами ответов.
  • Buttons, которые отображаются рядом с сообщениями от бота.

Для еще большей гибкости веб-приложения полностью поддерживают настраиваемые интерфейсы с JavaScript и языковую локализацию.

Команды

Бот может показывать разные команды разным пользователям и группам — этим можно управлять с помощью scope. Например, ваш бот может показывать администраторам группы дополнительные команды или переводить список на основе языкового_кода пользователя. jбновления Bot API не будут содержать никакой информации об области действия команды, отправляемой пользователем — на самом деле они могут содержать команды, которых вообще нет у бота. Серверная часть всегда должна проверять правильность полученных команд и авторизацию пользователя для их использования вне зависимости от области действия. Боты с включенным режимом приватности будут получать команды в группах только при особых условиях.

Клавиатуры

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

Встроенные клавиатуры (inline keyboards).

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

В отличие от настраиваемой клавиатуры для ответа, нажатие кнопок на встроенной клавиатуре не отправляет сообщения в чат. Вместо этого встроенные клавиатуры поддерживают кнопки, которые могут работать за кулисами или открывать разные интерфейсы: callback buttons, URL buttons, switch-to-inline buttons, game buttons и payment buttons.

Кнопка меню

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

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

Меню можно использовать для вызова веб-приложения.

Глобальные команды

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

/start — начинает взаимодействие с пользователем, например, отправка вступительного сообщения. Эту команду также можно использовать для передачи боту дополнительных параметров. /help — возвращает справочное сообщение, например, короткий текст о том, что может сделать ваш бот, и список команд. /settings — (если настройки имеются) показывает настройки бота для этого пользователя и предлагает команды для их редактирования.

Пользователи увидят кнопку «Пуск» при первом открытии чата с вашим ботом. Ссылки на помощь и настройки будут доступны в меню на странице профиля бота, если вы добавите их через @BotFather.

Чат и выбор пользователя

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

Идеальным примером является бот для управления группами: администратор может выбрать чат, которым должен управлять бот, а затем выбрать пользователя, которого он должен продвигать — это произойдет без ввода текста.

Вот краткое руководство по использованию этой функции:

  • Выберите набор критериев и сохраните их в объекте KeyboardButtonRequestChat (или KeyboardButtonRequestUser для пользователей).
  • Создайте KeyboardButton и сохраните критерии под request_chat или request_user соответственно.
  • Отправьте ReplyKeyboardMarkup, содержащий только что созданную кнопку.

Когда пользователь выберет чат, вы получите его идентификатор в сервисном chat_shared или user_shared сервисном сообщении. Имейте в виду, что бот может не иметь возможности использовать полученный идентификатор, если соответствующий чат или пользователь еще не известен или недоступен каким-либо другим способом.

Взаимодействия

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

  • Инлайн-режим (inline mode) позволяет отправлять запросы ботам прямо из поля ввода — из любого чата в Telegram.
  • Глубокие ссылки (deep linking) позволяют использовать специальные ссылки, которые при открытии отправляют боту определенные параметры.
  • Интеграция вложенных меню (attachement menu) позволяет использовать ботов из вложенных меню в чатах.

Встроенные запросы

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

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

Помните, что встроенные функции должны быть включены через @BotFather, иначе ваш бот не будет получать встроенные обновления.

Глубокие ссылки

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

У каждого бота есть ссылка, которая открывает с ним беседу https://t.me/<bot_username> в Telegram. Параметры могут быть добавлены непосредственно к этой ссылке, чтобы ваш бот мог работать с дополнительной информацией на лету, без какого-либо вмешательства пользователя.

AZ, az, 0-9, _ и - допускаются. Мы рекомендуем использовать base64url для кодирования параметров с двоичным и другими типами содержимого. Параметр может содержать до 64 символов.

Приватные чаты.

В приватных чатах вы можете использовать start параметр для автоматической передачи любого значения вашему боту всякий раз, когда пользователь нажимает на ссылку. Например, вы можете использовать:https://t.me/your_bot?start=airplane

Когда кто-то откроет чат с вашим ботом по этой ссылке, вы получите: /start airplane

Группы.

В группах можно добавить параметр startgroupb к этой ссылке. Например: https://t.me/your_bot?startgroup=spaceship

Переход по ссылке с этим параметром предлагает пользователю выбрать группу для добавления бота — результирующее обновление будет содержать текст в виде: /start@your_bot spaceship

Веб-приложения также поддерживают прямые ссылки.

Вложенные меню

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

Интеграции

Существуют различные способы дальнейшей интеграции ботов с Telegram и другими сервисами.

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

Веб-приложения

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

Платежи

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

Вот краткое руководство по внедрению платежей:

Затем, чтобы выставить счет и обработать поток заказов:

  • Отправьте пользователю счет за товары или услуги, которые вы предлагаете.
  • Подтвердите заказ и примите оформление заказа через ответ answerPreCheckoutQuery.
  • Подтвердите платеж, проверив сообщение об успехе.
  • Отправьте товар или окажите услуги. Полное и исчерпывающее руководство, включая оперативный контрольный список, параметры и подробное описание методов, доступно здесь.

Веб-вход

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

Виджеты

Виджет входа в Telegram — это простой и безопасный способ авторизации пользователей на вашем сайте.

  • Выберите бота — в идеале его имя и аватар должны совпадать с названием и логотипом сайта.
  • Используйте /setdomain команду в @BotFather, чтобы связать бота с доменом вашего сайта.
  • Настройте свой виджет с помощью нашего специального инструмента и вставьте его на свой сайт.
Встроенный вход

Когда пользователи открывают ваш веб-сайт с помощью встроенной кнопки, вы можете использовать параметр login_url в качестве альтернативы виджетам входа в систему. Таким образом, вы сможете легко авторизовать их на своем веб-сайте или в приложении еще до загрузки страницы.

HTML5-игры

Боты могут служить самостоятельными игровыми платформами — с помощью игрового API HTML5 вы можете разрабатывать многопользовательские или однопользовательские игры и позволять своим пользователям развлекаться, сравнивая ранги, очки и многое другое.

Для начала выполните следующие простые шаги:

  • Отправьте /newgame команду @BotFather
  • Предоставьте текст описания, изображение или дополнительный GIF-файл, чтобы продемонстрировать игровой процесс.
  • Отправьте игру пользователям с помощью метода sendGame или встроенного запроса.
  • Когда кто-то захочет поиграть, вы получите соответствующее сообщение game_short_nameв CallbackQuery.
  • Чтобы запустить игру, укажите URL-адрес игры HTML5 в качестве url параметра ответа CallbackQuery.

Затем для обработки рекордов :

  • Используйте setGameScore, чтобы публиковать рекорды в чате игры.
  • Используйте getGameHighScores, чтобы получить таблицы рекордов в игре.

Вы также можете встроить кнопку «Поделиться» в свою игру. Чтобы получить лучшее представление, обязательно посмотрите:

Стикеры и пользовательские эмодзи

Еще опции, доступные в АПИ

Смотри еще: