Новости
FirstDedic
Мы уже рассказывали, что запустили для своих клиентов специальный бот в Telegram и Viber. С его помощью возможно брать уведомления о низком балансе, активациях/продлении либо быстром удалении работ, а также о новых тикетах и многое другом.
Теперь же через бот возможно проводить проверку баланс привязанных аккаунтов и пополнять счёт через СБП.
- Если вы ещё не используете бота, то для подключения перейдите в Личный кабинет → «Настройки» → «Настройка уведомлений» → разрешить получение уведомлений через мессенджеры.
- Для работы бота требуется привязать к нему ваш аккаунт — в блоке «Настройка мессенджеров» выберите Telegram и/или Viber, нажмите «Не настроен» и следуйте дальнейшим инструкциям.
- Открываете мессенджер и бот в Telegram или Viber;
- Кнопка «Баланс» → «Пополнить баланс»;
- Из списка выбираете нужный аккаунт;
- Выбираете или прописываете необходимую сумму;
- Переходите по ссылке и совершаете оплату в приложении своего банка.
Если вы используете десктопную версию мессенджера, то при открытии ссылки дополнительно потребуется отсканировать QR-код со смартфона на котором установлено банковское приложение. После сканирование откроется приложение, в котором необходимо завершить оплату.
Если при переходе по ссылке открывается не то банковское приложение, запретите ему открывать ссылки для оплаты по СБП.
К примеру, на Android в настройках приложения следует перейти в раздел: «О приложении» → «Открывать по умолчанию» → снять галочку с «Открывать поддерживаемые ссылки».
Название параметров зависят от вашего устройства и могут отличаться от приведённого примера.
На iOS эта ситуация исправляется установкой приложения от СБП — оно будет уточнять банк при нажатии на ссылки.
Если возникли вопросы, напишите запрос в техподдержку — наши специалисты с радостью вам помогут.
Новости

Ранее мы уже рассказывали, что для своих клиентов создали специальный бот в Telegram и Viber.
С его помощью вы можете оперативно получать:
- финансовые уведомления,
- уведомления по услугам,
- уведомления центра поддержки.
Сегодня мы добавили в бот ещё две функции — проверку баланса привязанных аккаунтов и пополнение счёта через СБП.
Как пополнить баланс с помощью бота
- Выберите Telegram или Viber и запустите бот;
- Нажмите «Баланс» — выберите «Пополнить баланс»;
- Из выпавшего списка выберите аккаунт;
- Выберите/пропишите нужную сумму;
- Перейдите по ссылке и совершите оплату в приложении банка.
Если вы пользуетесь мессенджером с ПК, то после перехода по ссылке потребуется отсканировать QR-код со смартфона. После чего на телефоне откроется приложение вашего банка, в котором вы сможете завершить оплату.
Если у вас возникнут вопросы или трудности с оплатой — напишите нам, мы обязательно поможем.
Как сделать телеграм-бота на хостинге
Более подробно и со скриншотами мы уже описывали регистрацию тг-бота в статье для Спринтбокс. Вспомним основное:
- Создание любого бота начинается с сообщения отцу ботов в Телеграме — @BotFather (это официальный бот для создания тг-ботов)
- Создать бота можно командой /newbot
- Токен бота меняется командой /revoke
- У @BotFather есть справка по команде /help
Написание бота
Размещать бота в папке сайта или создавать под него новый сайт не обязательно — бот всё равно будет запускаться из консоли и веб-сервер ему не нужен. Это же приводит нас к еще одному ограничению — поддержки webhook для робота на Python нет, работает только polling. На Спринтбокс таких ограничений нет, любой вариант получения сообщений от Telegram API будет работать.
Чтобы не повторять статью Спринтбокс, напишем код бота на основе другой библиотеки — Aiogram — и примера базового бота из официальной документации.
- Создадим папку, откуда будет работать бот:
[username@server ~]$ mkdir ~/tgbot - Подготовим и активируем виртуальное окружение — инструкция тут.
- Установим aiogram:
(bot_venv) [username@server ~]$ pip install aiogram - Начнем писать бота прямо в терминале:
(bot_venv) [username@server ~]$ vim ~/tgbot/bot.py
Чтобы перейти в режим редактирования в vim, нажмем кнопку I
Для сохранения и выхода из vim нужно нажать ESC и после ввести :wq
Дальнейшие шаги такие же, как в документации Aiogram. - Импортируем все важные модули:
import logging
# Configure logging
logging.basicConfig(level=logging.INFO)
После этого мы получаем Python-скрипт с телеграм-ботом:
Посмотреть код бота целиком
«»»
This is a echo bot.
It echoes any incoming text messages.
«»»
from aiogram import Bot, Dispatcher, executor, types
API_TOKEN = ‘ВСТАВЬТЕ СЮДА ТОКЕН БОТА’
# Configure logging
logging.basicConfig(level=logging.INFO)
# Initialize bot and dispatcher
bot = Bot(token=API_TOKEN)
dp = Dispatcher(bot)
@dp.message_handler(commands=[‘start’, ‘help’])
async def send_welcome(message: types.Message):
«»»
This handler will be called when user sends `/start` or `/help` command
«»»
await message.reply(«Hi!\nI’m EchoBot!\nPowered by aiogram.»)
@dp.message_handler()
async def echo(message: types.Message):
# old style:
# await bot.send_message(message.chat.id, message.text)
if __name__ == ‘__main__’:
executor.start_polling(dp, skip_updates=True)
Запуск бота
Бот готов, запустить его можно командой: (bot_venv) [username@server ~]$ python ~/tgbot/bot.py
Но если закрыть соединение по SSH, бот тоже закроется. Чтобы этого не случилось, нужно дополнить код. В самое начало вставляем: import os, sys
activate_this = ‘/home/username/bot_venv/bin/activate_this.py’
with open(activate_this) as f:
exec(f.read(), )
Этот код активирует виртуальное окружение сразу внутри бота, и его не придется запускать отдельно.
Tmux
Теперь можно будет запустить бота в tmux и оставить его работать, даже отключившись от SSH.
Tmux уже установлен на всех серверах виртуального хостинга. Для запуска утилиты достаточно набрать в терминале tmux: [username@server ~]$ tmux
И уже здесь нужно будет запустить бота, как мы делали это раньше: [username@server ~]$ python ~/tgbot/bot.py
Теперь чтобы отключиться от сессии tmux, достаточно будет набрать комбинацию клавиш Ctrl + B , отпустить и нажать D .
- Посмотреть список сессий:
[username@server ~]$ tmux ls - Подключиться к последней активной сессии:
[username@server ~]$ tmux a - Подключиться к определенной сессии:
[username@server ~]$ tmux a -t 0 Вместо нуля используйте конкретный номер сессии, его можно узнать через tmux ls
Автоматизируем запуск
Один из наших сотрудников написал простой bash-скрипт, который выполняет запуск, перезапуск и остановку.
Посмотреть скрипт
if [[ «$#» == 0 || «$1» == «—help» || «$1» == «-h» ]]; then
echo »
Скрипт для мониторинга бота
start — запускает бота
stop — останавливает бота
status — проверяет, запущен ли процесс
restart — перезапускает бота
check_start — запускает бота, если тот не работает
Пример:
bot_control /home/login/tgbot/bot.py check_start
»
exit 0
fi
function get_pid bot_pid=»$(pgrep -alf python | grep $ | awk »)»
echo $
>
function bot_status pid=$(get_pid)
if [[ -z $ ]]; then echo «Бот не запущен.»; exit 0; fi
echo «$(ps -p $ -o pid,pcpu,command)»
>
function bot_start pid=$(get_pid)
if [[ $ ]]; then echo «Бот уже запущен.»; exit 0; fi
exec $ $ 2>/dev/null &
echo «Бот запущен.»
>
function bot_stop pid=$(get_pid)
if [[ -z $ ]]; then echo «Бот не запущен.»; exit 0; fi
kill $(get_pid)
echo «Бот остановлен.»
>
function bot_restart pid=$(get_pid)
if [[ $ ]]; then
bot_stop
sleep 3
bot_start
exit 0
else
echo «Бот выключен. Попробуйте: bot_control $ start»
fi
>
function bot_check_start pid=$(get_pid)
if [[ -z $ ]]; then echo «Бот не запущен. Запускаю.»; bot_start; exit 0; fi
echo «Бот запущен, всё хорошо.»
>
case «$2» in
start)
bot_start
;;
stop)
bot_stop
;;
status)
bot_status
;;
restart)
bot_restart
;;
check_start)
bot_check_start
;;
*)
echo «Неверная команда.»
;;
esac>
Скрипт можно дорабатывать под себя бесконечно, плюс есть другие рабочие аналоги, это лишь пример.
Прямо сейчас скрипт работает только для Python, но интерпретатор можно легко поменять на 21-й и 24-й строках.
Чтобы запустить скрипт, как в примере кода, нужно сделать исполняемым файл под именем bot_control и положить его в папку /home/username/.local/bin/, где username – это логин вашего аккаунта.
Эти команды помогут развернуть скрипт на аккаунте: [username@server ~]$ chmod +x bot_control
[username@server ~]$ mkdir -p ~/.local/bin/
[username@server ~]$ mv bot_control ~/.local/bin/
Что может пойти не так с вашим Телеграм-ботом, и почему количество подписчиков в канале не имеет значения?
Всем привет. Мы – команда WMB, разрабатываем чатботов для бизнеса. У нас есть платформа, на базе которой можно создавать кроссплатформенных ботов для ВКонтакте, Facebook, Skype и Telegram. Не так давно мы столкнулись с неожиданной проблемой, решить которую не составляет большого труда, но потенциальные неприятности огромны. Нашего бота уронила девочка 13 лет, которая горит желанием поведать миру множество интересных вещей.

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

Оставив в стороне смысловую нагрузку постов, мы выделили главное:
Если не задать обработку сообщений от каналов, они могут запросто положить чатбота. Произойти это может по разным причинам – бот просто растеряется от неожиданных параметров входящего сообщения или попытается ответить согласно своей логике. И если ответить не получится, бот потеряет смысл существования и скатится в экзистенциальный кризис
Интересней всего, как бот становится подписчиком. Будет ли бот узнавать важные и полезные вещи на определенном канале — решает исключительно создатель этого канала. Мнение самого бота во внимание не берется. Как все-таки далеко нам еще до настоящего толерантного общества! Очередной случай вопиющей нетерпимости со стороны белковых форм жизни

Чтобы получить нового подписчика, создателю канала достаточно добавить его в администраторы. От подобных назначений бот отказаться не в праве, назвали админом – полезай постить. Хотя даже в таких простых радостях бота можно ограничить. Чтобы числиться админом, достаточно обладать хотя бы одной опцией. Наиболее безобидная из них — добавление новых пользователей. Бот сможет привлекать новых читателей, а вот навредить будет не в силах.

Запрет на добавление бота в группы не решает данную проблему. Бота не получится подключить к чату, но администрировать каналы он сможет без проблем.
Кроме непосредственной опасности падения неподготовленного бота, данная возможность может подпортить жизнь невнимательным маркетологам. Перед написанием данной статьи я провел простой тест – брал ботов из канала BotCollection, добавлял их администраторами в свой канал и убирал все права, кроме «Add users». За минуту получилось добавить 5 ботов, что значит за час можно получить 300 новых подписчиков. Для узкоспециального канала это внушительная цифра. Таким образом критически важно оценивать каналы не по подписчикам, а по просмотрам. Не забывайте также и о том, что один человек может сгенерировать больше одного просмотра. Достаточно вернуться к просмотренному посту спустя некоторое время ?и счетчик просмотров снова пойдет вверх.
Коллеги, если кто-то еще сталкивался с какими-то интересными проблемами — делитесь в комментариях
