Тестирование бота Telegram на ответ

Содержание

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

Ранее мной был написан бот обратной связи на PHP, статья про него есть в ленте на сайте. Сейчас я практикуюсь в Node.js и решил переписать бот с использованием «Современного фреймворка для Телеграм Бот на Node.js» это Telegraf.js. Принцип работы бота остался тем же. Не стал разбивать на отдельные файлы весь код, для наглядности оставил в одном листинге. В настройках необходимо указать свои параметры, так как бот будет работать через webHook , то нужно указать путь до сертификатов для https соединения. Ниже приведены 3 варианта с использованием бота через webHook и вариант через getUpdates * * *

index.js — вариант 1

index.js — вариант 2

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

index.js — вариант 3

Максимально упростим код и используя метод sendCopy — просто отправляем копию сообщения от админа пользователю.

Викторина в телеграм боте | Как провести тест в телеграм боте


////////////////////// //// . Здесь запускаем webHook из первого варианта ////////////////////// ////////////////////// //// Основа 3 ////////////////////// /** * Слушаем на наличие объекта message */ bot.on(‘message’, (ctx) => < // убеждаемся что это админ ответил на сообщение пользователя if (ctx.message.reply_to_message ctx.message.reply_to_message.forward_from isAdmin(ctx.message.from.id)) < // отправляем копию пользователю ctx.telegram.sendCopy(ctx.message.reply_to_message.forward_from.id, ctx.message); >else < // перенаправляем админу forwardToAdmin(ctx); >>);

Вариант бота без webHook

Этот вариант можно запустить без настройки webHook, также не нужны домен и ssl-сертификат. Его можно спокойно запустить на локальной машине, при необходимости можно настроить соединение через прокси. Файл index.js

Файл package.json

< «name»: «telegramFeedBack», «version»: «1.0.0», «description»: «», «main»: «index.js», «scripts»: < «test»: «echo «Error: no test specified» exit 1″ >, «author»: «iMakeBots.ru», «license»: «», «dependencies»: < «https-proxy-agent»: «^2.2.1», «telegraf»: «^3.26.0» >>

Еще по теме:  Привязка почты в Телеграмм

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

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

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

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

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

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

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

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

Вот два бота-образца, написанных на 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

Как создать в Телеграме чат-бот для ответов на частые вопросы родителей. Инструкция

Педсовет

Фотографии: Unsplash. Иллюстрация: Юлия Замжицкая.

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

Еще по теме:  Вчк огпу чей канаТелеграмм канал

2. Напишите или выберите в меню/newbot — это команда к созданию нового чата.

3. Придумайте и введите название для своего бота — кириллицей или латиницей. Если передумаете, потом его можно будет легко изменить:

4. Затем придумайте юзернейм (он будет отображаться в ссылках). Он должен быть написан латиницей, может содержать цифры и нижнее подчеркивание и обязательно должен иметь окончание bot.

Например, SpravkaBot или spravka_bot.

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

Когда корректный юзернейм будет подобран, вы получите в ответ сообщение с токеном (это секретный ключ-идентификатор бота). Что-то вроде такого:

Скопировать токен можно, кликнув по нему. Дальше он вам еще пригодится.

6. Теперь можно создать короткое описание вашего бота (пользователь будет видеть его, заходят в чат). Выберите/введите команду /setdescription и введите ответ на вопрос «Что умеет этот бот?» (именно так, вместе с этим вопросом, ваше описание увидят пользователи).

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

10. Теперь можно перейти по ссылке в ваш собственный бот и продолжить настройку уже там. Нажмите на «Запустить», выберите язык.

11. Теперь можно добавлять кнопки: для этого выберите команду «Редактор кнопок», затем — «Добавить кнопку» и введите ее название.

Например «Расписание». Когда необходимые кнопки добавлены, нажмите на «Стоп редактор».

12. Теперь нужно сделать так, чтобы при нажатии на кнопку пользователю автоматически отправлялась нужная информация. Для этого нажмите на кнопку «Редактор постов» в главном меню и выберите кнопку, к которой хотите добавить информацию. Выберите команду «Добавить сообщение».

13. Теперь наберите нужное сообщение или прикрепите файл — например, картинку.

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

14. Еще одна полезная функция — рассылка: можно моментально оповестить всех пользователей бота, например, об изменении в расписании. Чтобы сделать рассылку, нажмите на кнопку «Админ» и выберите команду «Рассылка». Введите сообщение, которое хотите разослать, и нажмите на кнопку «Отправить».

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

Идея инструкции взята из блога Натальи Смарыгиной во Вконтакте.

Материалы по теме:

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

Источник: pedsovet.org

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