Бот обратной связи в Телеграм перезапуск

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

Для решения этой проблемы разработчики ботов стали сохранять ID авторов сообщений на стороне бота, а затем провязывать эти айдишники, но я лично считаю такой подход избыточным, т.к. такие данные, по сути, должны храниться вечно (мало ли, на какое сообщение вы решите ответить). В результате появился этот бот. Из плюсов: элементарно контейнеризируется, поскольку хранит всё в оперативной памяти (например, списки блокировок). Из минусов: поддерживает только те сообщения от пользователей, где можно добавлять подпись или редактировать текст, не поддерживает возможность сделать «ответ» (reply) на сообщение (в теории, решаемо) и не позволяет корректно реагировать на редактирование сообщений. Лично меня устраивает такой расклад.

Бот обратной связи в Телеграм feedback bot Telegram

Принцип работы

Сообщения от пользователей копируются методом copyMessage в чат к админу (или админам) с добавлением ID пользователя в виде хэштега, например, #id1234567, к тексту или подписи к медиафайлу. Когда администратор отвечает на сообщение, этот хэштег извлекается, парсится и используется в качестве получателя.

Как переписку видит пользователь:

Как переписку видит пользователь

В свою очередь, администратор видит так (и может пользоваться расширенным набором команд):

Как переписку видит администратор

Установка

Системные требования:

  1. Python 3.9 и выше (не нужно при запуске с Docker);
  2. Linux (должно работать на Windows, но могут быть сложности с установкой);
  3. Systemd (для запуска через systemd);
  4. Docker (для запуска с Docker). Старые версии Docker требуют отдельно docker-compose.

Просто потестировать (не рекомендуется)

  1. Клонируйте репозиторий;
  2. Перейдите ( cd ) в склонированный каталог и создайте виртуальное окружение Python (Virtual environment, venv);
  3. Активируйте venv и установите все зависимости из requirements.txt ;
  4. Скопируйте env_example под именем .env (с точкой в начале), откройте его и заполните переменные;
  5. Внутри активированного venv: python -m bot .
Еще по теме:  Как проверить код пароль на Айфоне Телеграмм

Systemd

  1. Выполните шаги 1-4 из раздела «просто потестировать» выше;
  2. Скопируйте feedback-bot.example.service в feedback-bot.service , откройте и отредактируйте переменные WorkingDirectory и ExecStart ;
  3. Скопируйте (или создайте симлинк) файла службы в каталог /etc/systemd/system/ ;
  4. Активируйте сервис и запустите его: sudo systemctl enable feedback-bot —now ;
  5. Проверьте, что сервис запустился: systemctcl status feedback-bot (можно без root-прав).

Docker + Docker Compose

  1. Возьмите файл docker-compose.example.yml из репозитория и переименуйте как docker-compose.yml ;
  2. Возьмите файл env_example там же, переименуйте как .env (с точкой в начале), откройте и заполните переменные;
  3. Запустите бота: docker compose up -d (или docker-compose up -d на старых версиях Docker);
  4. Проверьте, что контейнер поднялся: docker compose ps

Локализация

Если вы хотите изменить тексты в боте, ознакомьтесь с информацией в Wiki. В настоящий момент поддерживается только изменение текстов сообщений, но не описаний в меню команд

Папку bot/locales в случае с развертыванием бота в Docker можно переопределить, подсунув её снаружи как volume.

Open Source Agenda is not affiliated with «Telegram Feedback Bot» Project. README Source: MasterGroosha/telegram-feedback-bot

Источник: www.opensourceagenda.com

Как создать своего бота в BotFather?

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

Именно поэтому, мы решили рассказать вам о том, как его использовать и создать своего бота через BotFather.

Какие функции есть в BotFather?

Как и говорилось выше, это полноценный инструмент для управления своих ботов в Telegram.

В боте есть 2 основные команды.

  1. Команда /newbot позволяет создать нового бота.
  2. /mybots запускает редактор настроек ваших ботов.

6 команд для редактирования.

  1. /setname открывает редактор имен ботов.
  2. /setdescription открывает редактор описания бота. Короткое описание вашего бота. Допускается не более 512 символов. Этот текст будет виден пользователю при инициализации диалога.
  3. /setabouttext — запускает редактор информации»о боте». Информация о боте отображается в его профиле, максимум 120 символов.
  4. /setuserpic — отвечает за запуск редактора фотографии профиля бота. Размер фотографии профиля должен быть не менее чем 200×200 пикселей. Также желательно загружать квадратные изображения.
  5. /setcommands — запускает редактор списка команд бота. Команды нужны для управления и взаимодействия с ботом. Каждая команда начинается с косой черты «/», можно использовать латинские буквы, цифры, а также подчеркивания. Но не более 32 символов. Также необходимо задать описание команды. Данный список команд можно увидеть написав косую черту «/» в диалоге с ботом.
  6. /deletebot — команда для удаления бота
Еще по теме:  Ведение Телеграмм канала обучение бесплатно

7 команд для настройки бота.

  1. /token — команда для генерации токена.
  2. /revoke — данная команда отзывает токен.
  3. /setinline — команда включения inline mode.
  4. /setinlinegeo — включение местоположения.
  5. /setinlinefeedback — открывает настройки обратной связи
  6. /setjoingroups — позволяет включить и отключить возможность добавления ботов в группы.
  7. /setprivacy — команда для активации режима конфиденциальности в группах. Вы можете указать какие сообщения бот может получать в группах.

После ознакомления с командами можно приступать и к созданию бота.

Создаем своего бота и получаем токен.

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

Для создания бота введите в чат с BotFather команду /newbot. Бот попросит вас ввести название для нового бота. Можете указать в любом удобном формате, поддерживается кириллица и латиница, например: «тестовый bot». — Имя будет отображаться в заголовке и в информации о боте.

После того, как вы задали боту имя, нужно указать его сокращенное название для ссылок. Оно должно обязательно содержат приставку «bot» на конце. Например: «Test_Bot». — Сокращенное название может содержать от 5 до 32 и только латинских символов.

Если все выполнено верно ваш бот будет зарегистрирован в Телеграм и BotFather выдаст вам токен бота в таком формате: API:764645301:AAGdRMMi_bF67lCkJjA0DKQNOwoATJQMWXk

Этот токен можно использовать для авторизации бота и отправки запросов к Bot API.

Создание токена

Токен — это секретный ключ-идентификатор бота. Токен используется при обращении к Telegram API для идентификации бота.

Если вы потеряли, или у вас украли token, который был выдан при создании бот. Вы можете сгенерировать его заново. Для этого используйте команду /token, выберите нужного бота, далее ботфазер выдаст вам новый токен.

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

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

Форма обратной связи с отправкой письма в Телеграм. Отправка формы в телеграм

В новой записи я вам расскажу как создать форму обратной связи с отправкой письма в телеграмм. Для отправки письма мы будем использовать стандартные методы API от Telegram. Подробную информацию о методах вы можете посмотреть в официальной документации Telegram

Еще по теме:  Чат Телеграмм анонимный бот

3) Отправить сообщение боту — /newbot

4) После отправки запроса , нужно указать имя бота (на английском языке)

5) После этого дублировать название бота, но только суффиксом _bot

7) Теперь нам нужно создать чат в который мы добавим нашего бота

8) Далее нам нужно получить id нашего бота. Для этого нужно перейти по следующей ссылке, где за место символов X нужно подставить ваш токен:

https://api.telegram.org/botXXXXXXXXXXXXXXXXXX/getUpdates

Не закрывайте эту страницу, после 9 пункта, её нужно будет обновить.

9) Теперь вам необходимо отправить команду /join в чат для активации бота. После отправки команды, вам нужно обновить страницу, чтобы сделать повторный запрос.

Здесь вам нужно записать следующий фрагмент кода — id вашего бота. Эту информацию тоже нужно записать.

Вам нужен id со знаком минус.

«my_chat_member»:-594377170, .

Теперь вам нужно создать форму обратной связи и отправить полученные данные по следующему URL:
чата> $phone = $_POST[‘phone’]; $email = $_POST[’email’]; /*функция для создания запроса на сервер Telegram */ function parser($url) < $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); $result = curl_exec($curl); if($result == false)< echo «Ошибка отправки запроса: » . curl_error($curl); return false; >else < return true; >> /*собираем сообщение*/ $message .= «Новое сообщение из формы»; $message .= «Имя: «.$name; $message .= «Телефон:».$phone; $message .= «Email:».$email; /*токен который выдаётся при регистрации бота */ $token = «1724061264:AAHTshrcn33459712fdsf2zM-bDviT-QgF0tAM»; /*идентификатор группы*/ $chat_id = «-594377134470»; /*делаем запрос и отправляем сообщение*/ parser(«https://api.telegram.org/bot/sendMessage?chat_id=text=»);

Новый вариант кода

/* ОТПРАВКА ПИСЬМА ЗАКАЗА В TELEGRAM */ /*функция для создания запроса на сервер Telegram */ function parser($url) < $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); $result = curl_exec($curl); if($result == false)< echo «Ошибка отправки запроса: » . curl_error($curl); return false; >else < return true; >> function orderSendTelegram($message) < /*токен который выдаётся при регистрации бота */ $token = «1616052093:AAGZ5vsK12RTT92jj2yHaZ4tZIUB_8N-tY»; /*идентификатор группы*/ $chat_id = «-435154116»; /*делаем запрос*/ parser(«https://api.telegram.org/bot/sendMessage?chat_id=text=»); >

На этом всё!
Больше интересных статей в нашей группе — https://vk.com/progtime
Вы так же можете разместить свой вопрос на нашем форуме, где другие программисты смогут вам помочь в решение вашей задачи — https://vk.com/prog_time
Так же прокачивайте свои навыки на нашем канале — https://www.youtube.com/c/ProgTime

Наши планы

  • Написание материала для курса по разработке ботов на Telegram
  • Разработка универсального парсера на PHP

Поддержите мой сайт!

Каждый переведённый донат, мотивирует на создание новых записей и уроков на YouTube

Источник: prog-time.ru

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