Что значит пропустил бота

Содержание
  1. Bot API: часто задаваемые вопросы
  2. Общие вопросы
  3. Как я могу создать бота?
  4. Можно посмотреть примеры кода?
  5. Добавьте в ботов фичу X!
  6. Какие сообщения может получать мой бот?
  7. Почему мой бот не видит сообщений от других ботов?
  8. Получение обновлений
  9. Как можно получать обновления?
  10. Опрос всегда выдаёт один и тот же результат!
  11. У меня проблема с вебхуками
  12. У меня проблема с самозаверенным сертификатом
  13. Как мне убедиться, что запросы идут с серверов Telegram?
  14. Как делать запросы в HTTP-ответах к обновлениям?
  15. Обработка медиафайлов
  16. Как скачивать файлы?
  17. Как закачать большой файл?
  18. Как долго хранится file_id у файлов?
  19. Массовая рассылка
  20. Каков лимит сообщений в секунду?
  21. Как получить список всех подписчиков моего бота?
  22. Решения проблемы спам-ботов, добавляемых в телеграм-группы
  23. Боты в Телеграм: что это такое и как они работают
  24. Бот – что это такое и что он умеет
  25. Ищем своего бота
  26. Как ими пользоваться
  27. Боты с готовым меню
  28. Скрытое меню
  29. Нужно знать команды
  30. Универсальные команды
  31. Если бот молчит

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

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

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

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

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

Создание бота для Telegram крайне простое, однако, вам понадобится кое-какой опыт в программировании. Для работы вашего бота вам необходимо осуществить первоначальную настройку через бота @BotFather, а затем подключить его к вашему серверу через API.

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

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

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

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

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

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

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

Если у вас есть мысли по этому поводу, вы можете высказать их пользователю @BotSupport (на английском).

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

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

  • Сообщение было ответом боту или нажатием на его клавиатуру
  • В сообщении есть @упоминание бота по его имени пользователя
  • В сообщении содержится общая команда (напр., /start ) или команда, предназначающаяся вашему боту (напр., /start@YourBot )
  • Сообщение является служебным (о смене названия группы, выходе кого-либо из чата, и т. д.)

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

  • Сообщений от других ботов
  • Команд для других ботов (напр., /start@NotYourBot )
  • Ответов на сообщения от других ботов, за исключением случаев, когда в сообщении содержится @упоминание вашего бота.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Ознакомьтесь с инструкцией по созданию сертификатов. Если после прочтения у вас остались вопросы, напишите пользователю @BotSupport.

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

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

Так как никто посторонний не знает вашего токена, запросы на этот адрес смогут отсылать только сервера 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.

Источник

Решения проблемы спам-ботов, добавляемых в телеграм-группы

Привет. Я автор нескольких популярных ботов для администрирования телеграм групп: @daysandbox, @watchdog_robot и других. Каждый день в группе поддержки и в личных сообщениях я вижу один и тот же вопрос: как мне защититься от спам-ботов, добавляемых в группу. Обычно ещё уточняют, что это арабские спам-боты. Люди пытаются найти анти-спам бота, который будет удалять ссылки, удалять сообщения с арабскими символами, удалять пользователей с арабскими символами в именах и всё в таком духе. Но это всё следствия, а причина во многих случаях одна и та же и её легко поправить. Причина простая, но не очевидная.

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

Спам появляется по следующему сценарию:

  • участник группы добавляет спам-бота в группу
  • анти-спам бот видит факт добавления бота
  • анти-спам бот, вызывает метод telegram API, ограничивающий спам-бота в правах записи сообщений в группу. Например, он делает это для всех новых пользователей или только для тех, логин которых содержит в конце слово «bot». Это не суть важно.
  • Проходит некоторое время между моментами захода спам-бота в группу и обработкой телеграм сервера запроса об ограничении этого бота в правах записи в чат. В этот момент спам-бот может отправить сообщение в чат.
  • Анти-спам бот не видит это сообщение, потому что боты не видят сообщения других ботов. Так устроен телеграм.

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

Существует два типа телеграмм групп: публичная и частная. От типа группы зависит, что и как могут делать внутри группы администраторы, простые пользователи и боты. Обязательное условие для публичной группы — существование ссылки вида «https://t.me/XXX», по которой можно зайти в группу. Для частной группы наличие ссылки для входа не обязательно.

Рассмотрим процесс создания группы с нуля. Создадим группу с настройками по-умолчанию. У нас получится частная группа без ссылки-приглашения. Попробуем добавить любого бота простым участником группы. Добавился! Как решить проблему? Единственный способ запретить добавлять ботов в частную группу — это запретить добавлять вручную вообще каких-либо новых участников, это делается с помощью галочки «Управление группой -> Разрешения -> Добавление участников». Это ограничит только простых пользователей, администраторы группы по прежнему смогут добавлять новых участников (и ботов) руками.

С самым простым случаем разобрались. Теперь создадим ссылку-приглашение для входа в группу: «Управление группой-> Информация о группе -> Ссылка-приглашение -> Создать ссылку-приглашение». Получим ссылку вида «https://t.me/joinchat/. «. Для каждого администратора создаётся своя ссылка-приглашение, изначально её знает только администратор, её создавший. Теперь администратор может разместить эту ссылку там, где он посчитает нужным, и любой пользователь может присооединиться к чату по этой ссылке. В любой момент времени администратор может сгенерировать новую ссылку-приглашение, при этом старая ссылка перестанет работать.

Важное замечание: спам-боты не могут зайти в группу по ссылке-приглашению. Спам-бот (и вообще любой бот) может попасть в чат только, если кто-то добавит туда бота вручную. Самая частая причина появления спам-ботов в частных чатах — это когда администраторы создают ссылки-приглашения, но не отключают (через Управление группой -> Разрешения) возможность добавлять новых пользователей вручную.

Теперь посмотрим, что будет, если мы переведём группу из частного режима в публичный с помощью «Управление группой -> Информация о группе -> Публичная группа». Нам также придётся придумать публичный адрес вида «https://t.me/XXX», без этого не получится сделать группу публичной. Пусть это будет «https://t.me/habr_test». В чём отличие публичной группы от частной группы, имеющей ссылку-приглашение? Публичную группу можно найти через внутренний поиск телеграма, а также можно посмотреть любое сообщение группы через веб по адресу «https://t.me/habr_test/X», где X — это порядковый номер сообщения в группе.

Итак, наша группа стала публичной, у неё изменились свойства видимости, и не только. Самое интересное, что в неё больше нельзя приглашать ботов. Если в «Управление группой -> Разрешения» разрешено приглашать новых пользователей, то пользователи могу приглашать новых пользователей, но только обычных людей, не ботов. При попытке добавить бота будет возникать ошибка «Не удалось добавить пользователя. Попробуйте позже». То что надо!

Вывод. Иммунитет от заражения группы ботами даёт одно из двух действий:

  • запрет обычным участникам добавлять ботов (Управление группой -> Разрешения)
  • перевод группы в публичный режим т.е. назначение группе адреса вида «https://t.me/habr_test»

P.S. Заголовок статьи получился немного кликбейтовым. Конечно, множество телеграм-спама генерируется не bot-API ботами, а ботами использующими обычные пользовательские аккаунты, но проблема и её решение, описанные в статье, имеют место быть. И они имеют место быть каждый день, и я уже заколебался отвечать одно и то же на одни и те же вопросы, поэтому и написал эту статью.

UPD: Сделал бота, который автоматически удаляет сообщения, содержащие символы арабского алфавита, а также удаляет новых пользователей, в именах которых есть символы арабского алфавита. Просто установите бота @noarab_bot в чат и дайте ему права на удаление сообщений и на бан пользователей. Документация по боту: https://tgdev.io/bot/noarab_bot

UPD2: Если по тем или иным причинам невозможно сделать группу публичной или запретить добавление участниво в приватной группе, тогда можно использовать бота @watchdog_robot с фильтром «bot» — watchdog будет удалять ботов сразу же после того, как их кто-то добавил в чат.

Источник

Боты в Телеграм: что это такое и как они работают

Здравствуйте, дорогие читатели. У меня для вас отличная новость. Наконец-то дошли руки рассказать про то, что такое боты в Телеграм. Расскажу, зачем они нужны, как их искать и как правильно использовать. Как всегда, в описании будет минимум воды и максимум пользы.

Бот – что это такое и что он умеет

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

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

На сегодня роботы Телеграм могут:

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

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

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

Далее разберём, как они работают.

Принцип очень прост. Вы находите бота, пишете ему текстовое сообщение (команду) и через доли секунды получаете ответ.

  • Круглосуточная помощь – по сути, их работу остановит только авария на сервере, что случается крайне редко.
  • Удобство использования – большинство команд находится в меню бота.
  • Ответы приходят за несколько секунд.
  • Для работы используются ресурсы сторонних серверов, так что мощности вашего устройства не задействованы.
  • Безопасность. Многие переживают за сохранность своих данных, так вот можете не беспокоиться. Боты никак не украдут ваши данные. Они их просто не видят. Всё, что им доступно, – это текстовые команды из чата.
  • Установка дополнительных программ не требуется.

Теперь о том, как найти бота в Телеграме.

Ищем своего бота

Поиск бота ничем не отличается от поиска каналов в Телеграмм. Помните, о них я писал немногим раньше. Основные варианты поиска:

  • Через поисковики найти подборки популярных ботов

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

  • По поиску внутри Телеграм

Для этого нужно знать точное имя и ввести его в строку поиска. Имя обязательно заканчивается на bot и начинается с собачки – @.

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

  • Если бота с нужными функциями вы не нашли, то можете создать своего бота.

Как ими пользоваться

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

Общая схема: найти бота – нажать start/начать – ввести команду – получить ответ.

Думаю всем уже понятно, что бот — это программа, которая понимает определённые фразы. Они запускают цепочку действий, итогом является решённая задача.

Скриншоты будут из версии для ПК. В мобильной и онлайн-версиях всё то же самое.

Боты с готовым меню

В большинстве случаев бот имеет собственное меню. Вот пример Яндекс-бота.

Вот ещё вариант меню у бота популярного сайта AdMe.

Скрытое меню

У некоторых роботов меню скрыто. Чтобы его вызвать, необходимо нажать «/» и появится список команд.

Нужно знать команды

В статье про русификацию Телеграм мы знакомились с роботом Антоном, так вот, он не имеет понятного меню. Чтобы узнать, какие команды он понимает, необходимо отправиться в поиск по интернету.

Универсальные команды

Их понимает большинство онлайн-помощников:

  • /start – начало,
  • /help – помощь,
  • /settings – настройки.

Иногда боты понимают команды на русском, можно просто догадаться по смыслу. Вот образец – знаменитый робот Антон подрабатывает ещё и в Гидрометцентре. Если его спросить «Погода Воронеж», он тут же сообщит прогноз.

Если бот молчит

Иногда можно найти бота, который не отвечает. Что ни спроси, он будет молчать, как партизан. В чём причина?

  1. Так как они находятся на стороннем ресурсе, значит основная причина в проблемах сервера. Может быть временный сбой или полный отказ сервера.
  2. Также может быть, что неопытный программист ошибся при написании кода.
  3. Третья причина – вы вводите команду, которую бот не понимает. В таком случае, Гугл вам в помощь.

Сам столкнулся с проблемой – не захотел работать популярный @nationalgeographic_bot, он должен показывать лучшие фотки знаменитого журнала. Но, как я ни старался, команду подобрать не смог. Может у вас получится? Сообщите, пожалуйста.

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

С 2015 года работаю удалённо и развиваю бизнес в интернете. Создал более 20 источников дохода онлайн. Изучаю инвестирование и активно инвестирую в различные инструменты.

2 года прожил в Азии (о. Бали и о. Панган), продолжаю путешествовать по миру, помогать людям становиться финансово грамотными и улучшать своё качество жизни.

Источник

Оцените статью