У нас уже есть несколько статей и проектов с ботами для телеграма, но это были учебные проекты — мы на них учились, но реальной пользы они не приносили. Настало время это исправить и написать полноценного рабочего бота в помощь нашей редакции.
Какую задачу решаем
Проблема: сейчас у нас есть новостная редакция — её сотрудники каждый день читают новости в интернете и отбирают интересные. Но новостей много, а сотрудников мало, поэтому иногда интересные новости проходят мимо нас.
Что можно сделать: сказать всем, что если нашли интересную новость — присылайте её нам напрямую, в личные сообщения в телеграме. Но если новостей окажется слишком много, то у редактора новостей в личке начнётся ад.
Решение: сделать телеграм-бота, которому можно отправить сообщение, а он перешлёт его куда нужно. Чтобы не плодить личные сообщения от бота, можно сделать так:
- Сделать внутренний чат новостной редакции
- Добавить в него бота
- Настроить бота так, чтобы он отправлял сообщения пользователей в этот чат.
Что в итоге: когда у отдела новостей есть время, они заглядывают в этот чат и видят, кто что написал и что из этого можно взять в работу. Лишние сообщения не приходят, личные чаты не засоряются.
Вход в Telegram с папкой TDATA
Сложный вариант — написать своего бота и поставить его на сервер (мы не стали так делать)
Кажется, что если мы — издание про технологии и у нас есть программисты и свои виртуальные серверы, то проще всего будет написать бота на питоне и отправить на сервер. Но на самом деле с таким подходом есть много сложностей:
- нужно найти программиста на питоне, который сможет написать код;
- этот код потом нужно поддерживать, если понадобится добавить новые функции;
- нужно подготовить сервер к постоянной фоновой работе python-кода;
- следить за тем, чтобы бот работал круглосуточно, а если падал, то сам умел перезапускаться;
- следить за самим сервером и в случае чего — перезапускать его и все программы на нём.
Всё это требует внимания, времени и квалификации. В итоге простая задача превращается в целый рабочий процесс с отдельным человеком, который отвечает за бесперебойную работу сервера и всего, что на нём крутится.
Свой бот на своём сервере — это правильный подход, если у вас в компании уже настроен подобный процесс и есть отдельная команда, которая за это отвечает. В маленькой команде разворачивать всю эту систему ради одного бота — перебор.
Простой вариант — использовать конструктор
Telegram
Telegram – это один из самых используемых мессенджеров в России. Он работает на мобильных устройствах и на стационарных компьютерах на всех популярных операционных системах.
Пользователи Telegram могут общаться не только между собой, но и с ботами, которые выполняют различные полезные функции. Боты в Telegram выглядят как обычные собеседники в списке контактов. Ваш бот может принимать заказы от пользователей, сообщать о статусе доставки, принимать оплату и выполнять другие полезные функции.
Вы можете посмотреть пошаговую видеоинструкцию по созданию бота для Telegram:
Как опубликовать бота в Telegram
Как и в случае с любым другим каналом публикации, прежде чем публиковать бота в Telegram, нужно его создать в конструкторе Aimylogic.
О том, как создать бота, мы писали в инструкции по созданию ботов, а подробности про создание сценария описали в инструкции по созданию сценариев.
Когда ваш сценарий для бота в Telegram будет готов, то, прежде чем публиковать бота, нужно выполнить несколько простых шагов.
Регистрация бота
Чтобы бот заработал в Telegram, его нужно зарегистрировать. Для этого откройте мессенджер Telegram и в поиске контактов наберите botfather. Это официальный бот для регистрации ботов. Следуйте его подсказкам, чтобы зарегистрировать нового бота. В результате он сообщит вам специальный токен (длинную строку букв и цифр), которую вы должны скопировать в буфер обмена.
Подключение канала в Aimylogic
- В Aimylogic перейдите в настройки каналов вашего бота.
- Нажмите на кнопку Telegram, чтобы создать новый канал.
- В появившемся окне вставьте скопированный ранее токен в поле Токен.
- Нажмите на Создать канал.
Теперь можно перейти в мессенджер Telegram и протестировать работу бота.
Для этого нажмите на ссылку на вашего бота, которую вам выдал botfather. Вы можете затем отправить эту ссылку вашим пользователям (например, разместив на своем сайте).
Что есть в этом разделе
Помимо информации о том, как опубликовать бота в Telegram, в этом разделе мы разместили следующую информацию:
- Авторизация в Telegram
- Как отправить сообщение в Telegram
- Как отправить сообщение в группу Telegram
- Инлайн-кнопки
- Как получить городской номер телефона
Источник: help.aimylogic.com
Auth token expired telegram что делать
First of all, auth.exportLoginToken must be called by the app that wants to log in to an existing Telegram account.
The method will return an auth.loginToken constructor, containing a binary login token and an expiry date (usually 30 seconds).
The login token must be encoded using base64url, embedded in a tg://login?token=base64encodedtoken URL and shown in the form of a QR code to the user.
After the expiration of the current QR code, the auth.exportLoginToken method must be recalled and a new QR code must be generated automatically.
Accepting a login token
In order to log in, the QR code must be scanned and accepted by an already logged-in Telegram app using auth.acceptLoginToken.
The token must be extracted from the tg://login URI and base64url-decoded before using it in the method.
Possible errors returned by the method are:
- 400 — AUTH_TOKEN_INVALID , an invalid authorization token was provided
- 400 — AUTH_TOKEN_EXPIRED , the provided authorization token has expired and the updated QR-code must be re-scanned
- 400 — AUTH_TOKEN_ALREADY_ACCEPTED , the authorization token was already used
The method will return an authorization object, containing info about the app and session that we just authorized.
Ошибки Телеграмм: параметры, основные категории, примеры
При работе с мессенджером пользователи иногда получают уведомления, свидетельствующие о возникновении определенной проблемы. Ошибки Телеграмм могут иметь разную природу и структуру, понимание которых, как правило, позволяет оперативно найти выход из сложившейся ситуации и продолжить работу с приложением.
Протухает авторизация телеграм
Попробовал отправлять сообщения в телеграм при помощи TLSharp (хабр, гитхаб).
Ну, вариант рабочий. Однако есть следующая проблема: после коннекта к серверу нужно пройти аутентификацию, используя hash и code — и этот code приходит на телефон.
Этот code достаточно быстро протухает (в api точно не указано (раз, два), но где-то меньше часа кажется прошло) и если я даже сохраню этот код, то со временем всё равно получу исключение:
А это значит, нужно снова лезть (руками!) в телефон и в отладчике менять на лету значение переменной. Да-да, автор так и советует:
Только вот это совсем не production ready.
Кто может порекомендовать хороший способ автоматизировать этот процесс?
На ум приходит только вариант получения какого-то долгоиграющего (судя по api самого телеграмма — этот code можно получить либо в СМС на телефон, либо в приложение телеграмма) кода (на месяц хотя бы), но я не нашёл в api варианта получить такой токен (да и сомневаюсь, что по соображениям безопасности они будут выдаваться).
Похожие публикации:
- Telegram open network ton как заработать
- Почему в телеграмме флаг белоруссии красно белый
- Почему не могу зайти в телеграмм с телефона
- Телеграмм как корпоративный мессенджер
Источник: gshimki.ru