Как передать бота telegram другому человеку
Общие сведения
Что могут делать боты?
Вот несколько примеров использования ботов:
- Интеграция с другими сервисами. Например, бот может отправлять комментарии или управлять «умным домом». Или, например, отправлять вам уведомления при совершении каком-то действия или события (Примеры: GitHub Bot, Image Bot).
- Утилиты и инструменты. Бот может отображать погоду, переводить тексты или предупреждать о предстоящих событиях по вашему запросу (Например: бот опросов).
- Одно- и многопользовательские игры. Бот может поиграть с вами в шашки или шахматы, проводить викторины и так далее. (Пример: Trivia bot).
- Социальные сервисы. Бот может находить вам собеседника, основываясь на ваших общих интересах и увлечениях. (Пример: HotOrBot).
- Все, что вам захочется. Бота можно запрограммировать для чего угодно. Разве что посуду они помыть не смогут.
Как работают боты?
Как уже было сказано ранее, роботы — особые аккаунты, которые не требуют номера телефона при создании. По сути, эти аккаунты играют роль интерфейса к вашему сервису, который работает на удалённом сервере.
Рекомендуем также ознакомиться с подробным описанием Bot API.
Как создать бота?
Для этого есть. Бот. Просто напишите пользователю @BotFather и следуйте его инструкциям. Как только вы создали бота и получили свой ключ (токен) авторизации, переходите в раздел документации Bot API, чтобы начать настраивать вашего бота.
Чем бот отличается от обычного аккаунта?
Суперспособности
У роботов Telegram есть много уникальных возможностей — например, кастомизированные клавиатуры, дополнительные интерфейсы для команд по умолчанию, внешнее связывание и специальные режимы приватности для групп.
Инлайн-режим
С помощью ботов пользователи могут играть в HTML5-игры в группах или приватных чатах. Игровая платформа Telegram поможет составить таблицу рекордов и оповещать пользователей об изменении рейтинга.
Под капотом у игр — HTML5, поэтому вы можете создавать игры любой сложности. На данный момент командой Telegram созданы несколько демо-игр:
Клавиатуры
За более подробной информацией обращайтесь к описанию метода sendMessage.
Команды
Команды представляют собой более гибкий способ общения с ботом. Рекомендуется следующий синтаксис:
Команда должна начинаться с символа косой черты «/» и не может быть длиннее 32 символов. Команды могут состоять из букв латинского алфавита, цифр и подчёркивания. Несколько примеров:
Если в группе есть несколько ботов, вы можете дописать после команды имя бота, чтобы избежать коллизий в общих командах:
Это происходит автоматически, если вы выбираете команду из списка доступных.
Глобальные команды
Чтобы пользователям было проще работать с ботами, мы просим всех разработчиков реализовывать поддержку нескольких простых команд. В интерфейсе приложений Telegram будут ярлыки (быстрые ссылки) для этих команд.
При попытке начать общение с роботом, пользователь увидит кнопку СТАРТ. На странице профиля бота также будут доступны ссылки Помощь и Настройки.
Режим приватности
Внешнее связывание
Боты имеют механизм внешнего связывания, которые позволяет передать дополнительные параметры при запуске. Например, для передачи авторизационного токена пользователя, чтобы соединить его аккаунт с каким-либо внешним сервисом.
Допустимо использование символов A-Z , a-z , 0-9 , _ и - . Мы рекомендуем использовать base64url для кодирования параметров.
В PAYLOAD будет значение параметра start или startgroup , который был передан в ссылке.
Пример реализации внешнего связывания
BotFather
Создание бота
Напишите команду /newbot , чтобы создать нового робота. BotFather спросит у вас имя нового бота и предложит придумать username.
Имя (name) будет отображаться в контактах и чатах.
Username — короткое имя на латинице, которое используется для упоминаний бота и в ссылках на профиль в telegram.me. Username должен состоять из букв латинского алфавита, подчёркиваний и цифр и быть длиной от 5 до 32 символов. Также имя пользователя обязательно должно заканчиваться на «bot», например: «tetris_bot» или «TetrisBot».
Создание токена
Если вы потеряли или утратили доступ к токену, отправьте команду /token , чтобы сгенерировать новый.
Настройки
Пожалуйста, имейте в виду, что для применения настроек на сервере, возможно, потребуется некоторое время.
Сайт про Telegram на русском (неофициальный).
Здесь собраны приложения на базе MTProto, переведена некоторая документация с официального сайта, а также работает Webogram.
Telegram API vs Telegram Bot API
Рассказываю по порядку.
Телеграм использует собственный протокол шифрования MTProto. MTProto API (он же Telegram API) — это API, через который ваше приложение Телеграм связывается с сервером. Telegram API полностью открыт, так что любой разработчик может написать свой клиент мессенджера.
Для написания ботов был создан Telegram Bot API — надстройка над Telegram API. Перевод с официального сайта:
Почему-то мало кто знает о том, что Телеграм боты могут работать напрямую через Telegram API. Более того, таким образом можно даже обойти некоторые ограничения, которые даёт Bot API.
Вся информация ниже будет по умолчанию относиться и к Bot API, и к Telegram API. О различиях я буду упоминать. От некоторых ограничений Bot API можно избавиться с помощью локального сервера, об этом в конце статьи.
На чём пишут Телеграм-ботоы
Бот должен уметь отправлять запросы Телеграм-серверу и получать от него апдейты (updates, обновления).
Как получать апдейты в Bot API
Получать апдейты можно одним из двух способов:
Поллинг — просто регулярно отправлять запрос к серверу Телеграма для получения обновлений,
Вебхук — сделать так, чтобы Телеграм сам отправлял запросы по нужному URL.
Если вы попробуете загуглить, как написать Телеграм-бота на Python, вам предложат воспользоваться библиотеками python-telegram-bot и telebot. Но не стоит.
Ну, если вы только хотите познакомиться с разработкой ботов и написать своего hello-world-бота, то можете, конечно использовать и их. Но эти библиотеки могут далеко не всё. Среди разработчиков ботов лучшей библиотекой для ботов на Python считается aiogram. Она асинхронная, использует декораторы и содержит удобные инструменты для разработки. Ещё был хороший Rocketgram, но он давно не обновлялся.
Также ботов часто пишут на JavaScript, для этого обычно используется Telegraf. Библиотеки есть и для многих других языков, но используют их реже.
Пример кода бота
Если вы хотите получить какое-то представление о том, как вообще выглядит код бота, вот вам пример использования на aiogram с его странички на GitHub:
Этот бот будет отвечать на команды /start и и /restart.
Создание бота
Единственная информация о Телеграм-ботах, которой в интернете полным-полно: как создать бота. Это делается через специального бота BotFather. Когда вы создадите бота, BotFather даст вам его токен. Токен выглядит примерно так: 110201543:AAHdqTcvCH1vGWJxfSeofSAs0K5PALDsaw . Именно с помощью токена вы сможете управлять ботом.
Один пользователь может создать до 20 ботов.
В BotFather удобно управлять ботами своими командой /mybots .
Юзернеймы
При создании бота нужно выбрать юзернейм. После этого поменять его будет очень сложно.
Как поменять юзернейм бота
Если у вас есть бот, и вы хотите дать ему более короткий юзернейм (который может быть занят неработающим ботом), то вы, теоретически, можете это сделать через @BotSupport.
Для этого бот должен (внезапно) быть рабочим, а также поддерживать английский язык.
Принято использовать такой формат обращения в поддержку:
Если вы везунчик 9999 lvl — вам ответят.
Оформление бота
Открыв бота, пользователи могут увидеть его профиль.
Оформление бота настраивается в BotFather: меню /mybots → Edit Bot . Там можно изменить:
Информация (About) — это текст, который будет виден в профиле бота.
Аватарка. Аватарки ботов, в отличие от аватарок пользователей и чатов, не могут быть анимированными. Только картинки.
Команды — тут имеются ввиду подсказки команд в боте. Подробнее о командах ниже.
Inline Placeholder — об инлайн-режиме см. ниже.
Стандартный совет: Потратьте свое время и заполните описание и информацию бота, чтобы пользователям было понятнее и проще его использовать. Можете оставить там свои контакты. И поставьте аватарку, чтобы бота было проще отличать от других чатов в списке.
Запуск бота пользователем
В Телеграме можно делиться файлами до 2 ГБ, но в Bot API более жесткие лимиты: боты могут скачивать файлы до 20 МБ и отправлять файлы до 50 МБ.
Работа с файлами в Bot API
Если бот уже загрузил файл на сервер Телеграма, то он может использовать file_id, чтобы отправлять этот файл.
Загружать файл на сервер можно в том числе и по URL файла.
Куда может писать бот
Бот может писать в личку только тем пользователям, которые его запустили. Пользователь может заблокировать бота, и тогда бот снова не сможет ему писать.
Боты не могут писать другим ботам.
В группе боту можно дать права администратора, чтобы он мог выполнять действия админов.
В одной группе может быть до 20 ботов. В публичные группы (группы с юзернеймом) ботов могут добавлять только админы.
Как боты добавляют кнопки
Подробнее о кнопках тоже
Супергруппы
На самом деле многие группы в Телеграме являются супергруппами.
Почему так? Раньше было четкое разделение на группы и супергруппы. По задумке, супергруппы — это группы для сообществ. Супергруппы могут иметь больше участников, публичные ссылки и другие плюшки.
Со временем, видимо, решили, что это неудобная концепция. Теперь обычная группа становится супергруппой, когда у группы меняются какие-нибудь настройки (подробнее тут). Вот такой костыль.
В этой статье под группами я подразумеваю и супергруппы, и обычные группы.
id пользователей и чатов
У каждого пользователя, бота, группы, канала в Телеграме есть собственный id. Различать чаты в коде бота следует именно по id, потому что он никогда не меняется.
В токене бота первая часть — это его id. Например, токен 110201874:AAHdqTcvCH1vGWJxfSeofSAs0K5PALDsaw принадлежит боту с id 110201874 .
В Bot API перед id супергрупп и каналов пишется -100. Так, id 1356415630 превращается в -1001356415630 . Осторожно: вы не сможете сохранить это значение в 32-битный тип числа.
Команды — о них в следующем пункте.
Я включил Privacy mode, а он не работает
Нужно удалить бота из группы и добавить заново.
Это могло нарушить работу антиспам- и других ботов.
Сейчас баг уже исправлен.
Команды
Команды подсвечиваются как ссылки: нажатие отправляет команду в чат.
Разметка в Telegram API (Телеграм боты)
Способы выделения текста:
Жирный текст
Моноширинный текст ("в строке" и "блоком")
Кнопки
Инлайн-кнопки
URL button — кнопка с ссылкой.
Switch to inline button. Кнопка для переключения в инлайн-режим (об инлайн-режиме см. ниже). Кнопка может открывать инлайн в том же чате или открывать меню для выбора чата. Можно указать в кнопке запрос, который появится рядом с никнеймом бота при нажатии на кнопку.
Дополнительные виды кнопок
Login URL button — специальная кнопка для авторизации пользователей на сайте. Использовалась, например, в официальном боте @discussbot (до добавления нативных комментариев в Телеграм).
Клавиатурные кнопки
Есть другой тип кнопок: keyboard buttons. Они отображаются вместо клавиатуры как подсказки. При нажатии на такую кнопку пользователь просто отправит этот текст.
При этом в личных чатах с помощью кнопки можно:
Запросить номер телефона пользователя,
Запросить геолокацию пользователя,
Открыть у пользователя меню создания опроса.
По умолчанию, если показать кнопки в группе, они будут видны всем пользователям. Вместо этого можно отобразить кнопки одновременно для этих пользователей:
Ещё о кнопках
Показать клавиатурные кнопки,
Убрать все клавиатурные кнопки,
Таким образом, нельзя показать оба типа кнопок одновременно.
Взаимодействие с ботом
Ссылки на Телеграм боты.
Юзернеймы ботов работают так же, как и любые другие юзернеймы в Телеграме: бота @examplebot можно открыть по ссылке t.me/examplebot.
Также существует прямая ссылка: tg://resolve?domain=examplebot
Подробнее о ссылках tg://
Такие ссылки могут не только заменять ссылки t.me, но и задавать свои действия. Например, tg://settings открывает настройки.
Список известных таких ссылок есть канале @DeepLink.
Ссылка на добавление в группу
По ссылке t.me/examplebot?startgroup=true у пользователя откроется меню: выбор группы для добавления бота.
Прямая ссылка: tg://resolve?domain=examplebot&startgroup=true
Диплинки
По ссылке t.me/examplebot?start=<ваш текст> пользователь может запустить бота с каким-то стартовым параметром ( <ваш текст> ).
Как это выглядит:
При переходе по ссылке бот открывается как обычно.
Часто диплинки используются для реферальных программ (в качестве параметра можно передавать id пользователя, который поделился ссылкой). Есть и другие применения. Телеграм боты.
Прямая ссылка: tg://resolve?domain=examplebot&start=<ваш текст>
Инлайн-режим. Телеграм боты.
Инлайн-режим (inline mode) — это специальный режим работы бота, с помощью которого пользователь может использовать бота во всех чатах.
В группе можно запретить использовать инлайн всем или некоторым участникам. В официальных приложениях Телеграм это ограничение объединено с ограничением на отправку стикеров и GIF.
Результаты инлайн-режима
Результаты можно отображать двумя способами:
Сеткой. Удобно для выдачи картинок.
- Вертикальным списком. Удобно для выдачи текста.
Можно совмещать два типа, но корректно отображается это только на Telegram Desktop.
Приватность и геопозиция в инлайне
Inline feedback
Inline feedback — это апдейты о выбранных инлайн-результатах. Включаются через BotFather.
Создание наборов стикеров для телеграм ботов
Боты (и только боты!) могут создавать наборы стикеров. При этом каждый набор стикеров должен принадлежать какому-то пользователю. Посмотреть свои наборы стикеров пользователь может с помощью бота @Stickers.
Телеграм боты. Платежи
Телеграм предоставляет ботам возможность принимать платежи от пользователей. Это делается через провайдеров ЮMoney, Сбербанк, Stripe и ещё 7.
Эта возможность используются редко, потому что для использования провайдеров нужно юридическое лицо.
Платежи, к тому же, не работают на iOS из-за ограничений Apple.
HTML-игры в ботах
Telegram Login Widget
Вы можете добавить на свой сайт авторизацию через Телеграм. Процесс авторизации будет проходить так:
Пользователь должен будет ввести свой номер телефона.
Бот Telegram попросит подтвердить вход.
Telegram Login Widget не связан с Login URL button (см. раздел про кнопки выше), а является его альтернативой.
Разработка Телеграм ботов
Какие апдейты можно получать
Получение апдейтов: Bot API vs Telegram API
Если вы получили апдейт в Bot API, то второй раз вы его уже не получите.
В Telegram API это не так: пользователь может пользоваться мессенджером через несколько клиентов, каждый из которых должен получать апдейты.
Если запустить для одного бота несколько программ на Telegram API, то каждая из них будет получать все апдейты.
Ограничения Bot API не позволяют сделать то же самое.
Лимиты
Конечно, на запросы к серверу существуют лимиты. В Bots FAQ на сайте Telegram названы следующие:
Эти лимиты не строгие, а примерные. Лимиты могут быть увеличены для больших ботов через поддержку.
Другие известные ограничения в Telegram собраны на limits.tginfo.me — см. раздел про ботов.
Рассылка по пользователям
30 пользователям в секунду.
Смена владельца бота
Осенью 2020 года появилась возможность передавать ботов другому человеку. Это можно сделать в настройках бота в BotFather. Для этого на вашем аккаунте должна быть включена двухфакторная авторизация — не менее, чем за 7 дней до передачи. Передать бота можно только пользователю, который что-либо ему писал.
Локальный сервер Bot API
Также осенью 2020 года исходники Bot API выложили на GitHub. Теперь вы можете поднять собственный сервер Bot API. На GitHub перечислены следующие преимущества:
Скачивание файлов с сервера без ограничения (ограничение на отправку файлов пользователями в Телеграме — 2 ГБ),
Загрузка файлов на сервер до 2000 МБ,
Загрузка файлов на сервер с помощью локального пути и URI файла,
Использование любого локального IP-адреса для вебхука,
Использование любого порта для вебхука,
Возможность увеличить максимальное число соединений до 100000,
Получение локального пути файла вместо загрузки файла с сервера.
Юзерботы
В начале статьи я рассказывал о том, что такое Telegram API и Telegram Bot API.
Юзерботов следует использовать аккуратно: за большую подозрительную активность аккаунт могут ограничить или забанить.
Заключение. Телеграм боты
Я постарался собрать в одном месте и структурировать информацию о всех возможностях Телеграм-ботов. Большое спасибо vanutp, NToneE и Grinrill за помощь с фактами. Если мы что-то забыли — пишите, исправлю.
Я специально не разделял большую статью на несколько постов, чтобы можно было быстро найти нужную информацию. К тому же, в начале статьи есть её содержание. Так что можете сохранить её к себе и использовать как справочник 🙂
Вообще интерфейс бота (то есть интерфейс чата) имеет много ограничений. Но плохо ли это? Действительно удобнее использовать инструмент, когда это часть привычной среды. Я часто прямо в переписке нахожу нужную картинку или информацию с помощью инлайн-ботов. Как заядлый пользователь Телеграма, я люблю использовать ботов. И создаю ботов. И вы создавайте.
Как передать права владельца чата в Телеграм? Для этого можно пойти двумя путями. Первый — отдать доступ к аккаунту и изменить номер. Вместе с ним переходят все каналы, чаты и контакты. Второй — назначить нового администратора и изменить собственника. Ниже рассмотрим принципы и особенности передачи полномочий в мессенджере.
Как передать права в Телеграм
Многие интересуются, как передать права владельца канала в Телеграмме, чтобы дать все полномочия новому человека. В таком случае может потребоваться переоформление аккаунта пользователя и перенос данных на другую SIM-карту. Алгоритм действий в этом случае следующий:
- Войдите в мессенджер.
- Жмите на три полоски слева.
- Жмите на «Сменить номер» и следуйте инструкции.
Н этом этапе нужно указать телефон нового собственника, который должен подтвердить принятие аккаунта в Телеграм.
Отметим, что таким способом передается весь профиль со всеми чатами, контактами, группами и т. д. При этом важно, чтобы телефон нового собственника находился в той же стране, ведь в ином случае будет появляться ошибка.
Как сделать человека администратором и владельцем
В большинстве случаев не нужно менять собственника 100% аккаунта — достаточно знать, как передать права администратора Telegram. После недавнего обновления пользователям стала доступна такая опция на смартфонах с Андроид и iOS. При этом можно без смены владельца профиля передать полномочия на ведения группы / канала другому человеку (по желанию).
Перед тем как передать чат другому владельцу в Телеграм, необходимо проверить соблюдение следующих условий:
- Аутентификация включена более чем неделю назад. Для ее включения зайдите в «Настройки», перейдите в «Конфиденциальность и безопасность», а после этого включите «Двухэтапную проверку».
- Вы должны зайти в аккаунт на этом устройстве не позднее, чем 24 часа назад.
После этого можно разбираться, как передать чат другому владельцу с предоставлением полномочий админа.
Для передачи прав на чат сделайте следующее:
- Войдите в Телеграм.
- Кликните на канал, для которого вы планируете поменять владельца.
- Кликните на имя и «Изменить» (символ карандаша).
- Войдите в «Администраторы» и «Добавить администраторов».
- Выберите участника, которую нужно передать права владельца чата.
- Кликните на переключатель «Добавить новых …».
- Кликните «Изменить владельца».
- Введите пароль для 2-этапной проверки.
Рассмотренный выше способ можно использовать, чтобы передать права другому админу у канала и группы. Алгоритм действий в обоих случаях аналогичный.
Что делать, если владелец вышел
В Сети встречается много вопросов, как админу выйти из группы, и можно ли это сделать. Для достижения нужного результата необходимо сначала назначить администратора, а уже потом покинуть сообщества. Чтобы передать права, сделайте следующее:
- Войдите в группу в Телеграмм.
- Кликните на ее название.
- Жмите на символ карандаша справа вверху.
- Кликните на «Администраторы».
- Укажите права нового пользователя.
- Жмите на галочку.
- Покиньте чат.
Если админ покинул чат, но не передал права владельца / администратора другому человеку, группа / канал в Телеграм может продолжить существование. Для этого при выходе не нужно ставить отметку об удалении сообщества у всех участников.
Теперь вы знаете, как отдать права собственника чата в Телеграм, что для этого необходимо, и можно ли пользоваться сообществом без админа. В комментариях расскажите, пригодились ли вам приведенные рекомендации, и какие еще имеются варианты.
Автоматизируем передачу контактных данных из BotHelp и Telegram с помощью ApiX-Drive за 5 минут без знаний в программировании.
Если ваш интернет-бизнес для сбора контактных данных клиентов использует чат-бота, то встает вопрос, как обрабатывать и куда выгружать полученную информацию. Если формировать базу потенциальных покупателей вручную — переносить данные в другую систему, например, Google Sheet, Telegram, CRM для дальнейшей работы, то придется следить за поступлением новых контактов постоянно. Если их много — от быстроты реакции менеджера может зависеть, состоится сделка или нет. Постоянный мониторинг личного кабинета сервиса чат-бота отнимает много времени. Да и при ручном переносе не исключены ошибки.
Более эффективное решение — автоматизировать передачу контактов из бота в нужную вам систему. Данные могут поступать сразу ответственному менеджеру, можно настроить выгрузку так, что информация будет заполнять нужные поля в CRM-системе или графы и строки в Google Sheets. А главное — ни одно обращение не будет упущено. Не нужно нанимать дополнительных сотрудников, тратить на это средства и время.
Чат-бот и принимающая информацию система будут работать в тандеме 24/7 благодаря онлайн-коннектору ApiX-Drive. Эта платформа позволяет связывать работу разных систем за 5 минут без знаний и навыков в программировании. Мы рассмотрим, как интегрировать чат-бота BotHelp и Telegram, но подчеркнем, системы могут быть любыми, а связь через ApiX-Drive настраивается по такому же принципу и алгоритму.
Настройка связи BotHelp и Telegram
Настройка интеграции приложений, для того чтобы источник данных своевременно передавал информацию в систему приема, представляет собой создание связи по API-протоколу. Разработчики отправляют специальные запросы системе, выстраивают алгоритм и записывают его в виде кода.
Вам этого всего делать не нужно, незачем также разбираться в тонкостях программирования и других особенностях настройки интеграции. За вас все это уже сделал ApiX-Drive. После простой и быстрой регистрации в системе нажатием одной кнопки создаем новую связь:
Подготовка источника данных
Источником данных в нашей интеграции является чат-бот BotHelp. Выберите его в выпадающем списке:
Задача онлайн-коннектора ApiX-Drive — взять данные из BotHelp и передать в Telegram, поэтому в следующем окне выбираем действие «Получить данные».
Теперь подключаем своего чат-бота к коннектору, для этого входим в аккаунт. Если вы все сделали правильно — он отобразится в списке:
Система сгенерирует вам ссылку. Ее необходимо скопировать в буфер обмена:
Теперь переходим работать в аккаунт BotHelp. Необходимо создать новое действие:
В выпадающем списке необходимо выбрать пункт «Отправлять данные подписчика через веб-хук» и вставить ссылку:
Теперь нужно связать предыдущие действия с новым и активировать бота:
Протестировать бота можно путем переписки с ним:
На следующем этапе можно настроить фильтрацию данных: указать, в каком случае загружать информацию не нужно, например, если пользователь не указал телефон.
Если в настройке фильтров необходимости нет — на следующем этапе вы сможете увидеть, какие данные будут передаваться в Telegram.
Вы можете протестировать связь или вернуться к любому этапу для редактирования настроек. На этом система-источник успешно настроена. Можно переходить к системе приема.
Настройка принимающей системы
По аналогии с предыдущей системой, выбираем ее в списке и действие, на которое будет срабатывать робот:
После этого ваш Телеграм-аккаунт отобразится в списке подключенных:
Убедитесь в том, что все отображается корректно:
Настройка системы приема данных успешно завершена, осталось включить автоматическое обновление:
Включаем автоматическое обновление
Для того, чтобы данные оперативно поступали в Телеграм, необходимо включить автообновление данных и выставить оптимальный интервал, например, 5 минут:
Заключение. Связь BotHelp с Telegram – за 5 минут
Настройка автоматической выгрузки контактных данных из BotHelp в Telegram с помощью онлайн-коннектора ApiX-Drive занимает считанные минуты. С задачей справится любой сотрудник без навыков в разработках и программировании.
Онлайн-коннектор ApiX-Drive предлагает готовые интеграционные решения для множества различных систем и сервисов. Это позволяет автоматизировать рутинные процессы, сэкономить время сотрудников и средства руководителям бизнеса. Передавайте контакты клиентов ответственным менеджерам, не пропускайте ни одного обращения.
Читайте также: