Что случилось с ботами в Телеграм

Содержание

Реализация собственного обработчика ошибок для Telegram бота

Внимание! Пакеты python-telegram-bot версии 13.x будут придерживаться многопоточной парадигмы программирования (*на данный момент актуальна версия 13.15). Пакеты версий 20.x и новее предоставляют чистый асинхронный Python интерфейс для Telegram Bot API. Дополнительно смотрите основные изменения в пакете python-telegram-bot версии 20.x.

В python-telegram-bot все ошибки, связанные с Telegram, инкапсулируются в класс исключения TelegramError и его подклассы, расположенные в модуле telegram.error .

Любая ошибка, включая TelegramError , которая возникает в одном из обработчиков сообщений или при вызове Updater.get_updates() , перенаправляется всем зарегистрированным обработчикам ошибок, чтобы можно было на них отреагировать.

Что бы зарегистрировать обработчик ошибок, необходимо вызвать Dispatcher.add_error_handler(callback) , где обратный вызов callback — это функция, которая принимает обновление update и контекст context . Объект update будет обновлением, вызвавшим ошибку (или None , если ошибка не была вызвана update , например, для Jobs ), а context.error — возникшей ошибкой.

Пример: пытаемся отправить сообщение, но пользователь заблокировал бота. Будет вызвано исключение Unauthorized , подкласса TelegramError , которое будет доставлено обработчику ошибок. В обработчике ошибок можно удалить этот контакт из списка контактов бота.

Примечание. Можно обрабатывать исключения по мере их возникновения. Обработчику ошибок python-telegram-bot перенаправляются только неперехваченные исключения.

Пример собственного обработчика ошибок.

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

Хороший обработчик ошибок.

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

Источник: docs-python.ru

Bot API: часто задаваемые вопросы

Если вы незнакомы с ботами в Telegram, рекомендуется сначала прочитать ознакомительную статью.

Также, возможно, вас заинтересует описание Bot API.

Общие вопросы

Как я могу создать бота?

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

Еще по теме:  Как разговаривать по Telegram

Можно посмотреть примеры кода?

Вот два бота-образца, написанных на PHP:

  • Hello Bot: демонстрация основных возможностей Bot API.
  • Simple Poll bot: более сложный бот, поддерживающий оба способа получения обновлений (long-polling и вебхуки).

Примечание

Многие разработчики создают своих ботов с открытым исходным кодом. Мы собираем их на специальной странице.

Добавьте в ботов фичу X!

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

Какие сообщения может получать мой бот?

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

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

Почему мой бот не видит сообщений от других ботов?

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

Получение обновлений

Как можно получать обновления?

На текущий момент доступно два способа. Вы можете использовать либо опрос, либо вебхуки. Обратите внимание: если вы используете вебхуки, метод getUpdates работать не будет.

Принципиальное отличие: при опросе вашему приложению самому нужно запрашивать обновления у API, а используя вебхуки — сервера Telegram будут отправлять на ваш сервер каждое обновление с помощью HTTPS POST-запроса.

Предупреждение

Вебхуки могут работать только через HTTPS, допустимо использование самозаверенного сертификата.

Доступные порты: 443, 80, 88, 8443.

Опрос всегда выдаёт один и тот же результат!

Метод getUpdates выдаёт 100 последних неподтверждённых обновлений. Чтобы подтвердить обновление, используйте параметр offset при вызове getUpdates вот так:

offset = update_id последнего обработанного обновления + 1

Все обновления с update_id меньшим или равным offset будут отмечены как подтверждённые и не будут больше возвращаться сервером.

У меня проблема с вебхуками

Если вы успешно задали адрес вебхука, но не получаете обновлений, убедитесь, что:

  • SSL-сертификат вашего вебхука валиден и корректен
  • При использовании самозаверенного сертификата, вы передаёте его публичный ключ в поле certificate метода setWebhook. Необходимо загружать InputFile , отправка строки не сработает.
  • Ваш вебхук работает на одном из допустимых портов: 443, 80, 88, 8443.

У меня проблема с самозаверенным сертификатом

Как мне убедиться, что запросы идут с серверов Telegram?

Для этого включите ваш токен в адрес вебхука, примерно так:

https://example.com/your_token

Так как никто посторонний не знает вашего токена, запросы на этот адрес смогут отсылать только сервера Telegram.

Как делать запросы в HTTP-ответах к обновлениям?

Это возможно при использовании вебхуков. Преимуществом является сокращение числа запросов, недостатком — невозможность получения результата запроса и его статуса.

Еще по теме:  Закрытый чат эдисона в Телеграмме

Всякий раз при получении обновления на вебхук, у вас есть два варианта:

Прямой запрос

2. Ответить напрямую, указав метод в виде JSON в HTTP-ответе:

Ответ в запросе

Примечание

Пример реализации этой возможности на PHP можно посмотреть в коде HelloBot.

Обработка медиафайлов

Как скачивать файлы?

Для этого используйте метод getFile .

Предупреждение

Этот метод работает только для файлов объёмом до 20 МБ.

Как закачать большой файл?

На текущий момент боты могут отправлять файлы объёмом до 50 МБ, так что крупные файлы отправить не получится. Возможно, это ограничение будет снято в будущем.

Как долго хранится file_id у файлов?

file_id у отправленных вашим ботом файлов будут удалены после отправления нескольких тысяч файлов.

Для принятых файлов file_id можно считать вечным и неизменным.

Массовая рассылка

Каков лимит сообщений в секунду?

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

При рассылке уведомлений нескольким пользователям, API не позволит отправлять более 30 сообщений в секунду. Для преодоления этого лимита вам необходимо разбить отправку на части с большим интервалом между собой (около 8-12 часов).

При работе с группой ограничение установлено на 20 сообщений в минуту.

Как получить список всех подписчиков моего бота?

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

Чтобы максимально эффективно рассылать сообщения, вам необходимо разбивать отправку на несколько частей с интервалом в 8-12 часов. Также недопустимо отправление более 30 сообщений разным пользователям в секунду — иначе вы будете получать ошибку 429.

Сайт про Telegram на русском (неофициальный).

Здесь собраны приложения на базе MTProto, переведена некоторая документация с официального сайта, а также работает Webogram.

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

Берегите своего бота

Берегите своего бота

В информационном пространстве постоянно пытаются кого-то взломать или обокрасть. Бизнес этого опасается и хочет знать, что его ИТ-инструменты надежны и защищены. В случае использования ботов в Telegram для целей e-commerce все вполне безопасно. При условии соблюдения правил элементарной кибер-гигиены. Угрозы скорее стоит ждать изнутри, а не снаружи.

Аудитория Telegram молода, активна, многие «на ты» с технологиями, и неудивительно, что обязательно найдется какой-нибудь мамкин айтишник/доморощенный хакер/просто свободный художник, который захочет задидосить или потроллить вашего бота. Об этом нечасто пишут, но проблема есть. Фрод и антифрод вообще достаточно узкая закрытая тема, которую в публичное пространство редко выносят. Хотя бы из опасения подкинуть нездоровую идею каким-нибудь бездельникам. Не будем нарушать общего правила, но минимум информации все-таки стоит озвучить.

Взлом невозможен

Самое главное, что нужно знать – взлом Telegram невозможен. Команда Павла Дурова с самого начала позиционировала свой алгоритм шифрования как конкурентное преимущество и продолжает работу над ним. Пока не слышно, чтобы кто-то его одолел. А уж желающих немало – Telegram перед тобой, приходи и пробуй. Все механизмы в мире кибербезопасности проверяются лишь в реальных условиях.

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

А вот что действительно случается, так это «угон аккаунта» по вине самих пользователей. Причины стандартные: простые пароли, незапароленные устройства, посещение подозрительных сайтов. А еще исконно российская привычка использовать софт по максимально выгодной экономической модели, то есть даром, не заботясь о том, откуда именно удалось скачать непонятно какую сборку.

Советы, как избежать «угона» аккаунта:

  • использовать сложный пароль, а еще лучше включить двухфакторную аутентификацию,
  • использовать официальные клиенты (мобильные и десктопные),
  • по возможности не использовать взломанные устройства с «рутовым» доступом.

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

Безопасность бота в Telegram

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

Советы, как избежать проблем с токеном:

  • надежно хранить важную информацию (просто выработать правильные привычки, в том числе не записывать последовательность на листе бумаги, который потом отдаешь ребенку под рисование),
  • создавайте важных ботов сами или с аккаунта, к которому у вас есть доступ,
  • в случае компрометации необходимо незамедлительно выпустить новый токен.

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

Самая радикальная ситуация – это взлом сервера с кодом бота. Здесь от пользователя мало что зависит, все упирается в грамотную организацию доступа, а это вопрос ИТ-специалиста.

Думайте о бизнесе

Что в итоге, стоит ли бояться за своего бота для торговли в Telegram? Бояться не стоит. Стоит беречь. А для того, чтобы иметь уверенность во всех аспектах безопасности, нужно просто выбрать надежный сервис. Разработчики системы «Ботобот» уделяют много внимания тестированию логики ботов и безопасности серверов и данных. У нас в плане стоит пост о технической стороне работы сервиса, и вопросов надежности мы тоже коснемся. Оставайтесь с нами.

Image by Jan Alexander from Pixabay.

Разблокировка Telegram

Разблокировка Telegram

Поздравляем всех фанатов Telegram. Федеральная служба по надзору в сфере связи, информационных технологий и массовых коммуникаций (ака Роскомнадзор) заявила о разблокировке. Хорошая новость для всех, кто использует платформу для бизнес-целей, поскольку раньше могли

Источник: www.botobot.ru

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