Remote bot for telegram как настроить whatsapp
Перейти к содержимому

Remote bot for telegram как настроить whatsapp

  • автор:

Запускаем Telegram-бота на Android устройстве (Remote Bot for Telegram)

Четыре месяца назад у меня появилась идея написать Telegram-бота, который будет запускаться не на внешнем сервере, как большинство ботов, а на мобильном телефоне.

Идея родилась не на пустом месте: я часто пропускал входящие звонки и СМС, когда телефон был в куртке или в кармане, поэтому мне нужен был дополнительный способ уведомлений. А так как я активно использую Telegram на компьютере, то подумал, что было бы не плохо, если бы входящие СМС и пропущенные звонки приходили в Telegram. Немного покопавшись, я решил написать бота.

Разработка прототипа

Я стал изучать тему создания Telegram ботов по официальной документации и по примерам. В основном все примеры были написаны на Python. Поэтому не долго думая, стал искать способы запуска Python сервера на Android. Но оценив время на изучение Python и не найдя ничего подходящего для запуска сервера, занялся поиском альтернатив и наткнулся на несколько библиотек на Java для написания Telegram ботов. В итоге остановился на проекте от Pengrad: java-telegram-bot-api.

Данная библиотека позволяла, на тот момент, инициализировать бота и получать-отправлять сообщения, что мне было и нужно. Добавив библиотеку в свой проект, я реализовал простой сервис, который запускал в фоновом потоке цикл по получению сообщений из Telegram и их обработке. Предварительно необходимо было зарегистрировать нового бота через родительский бот @Botfather и получить его токен. Подробнее о создании бота по ссылке.

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

Приведу в пример функцию, позволяющую получать последние сообщения и отправлять их на обработку:

Позже, в целях безопасности, я добавил возможность привязки бота к разрешенным Telegram-аккаунтам и возможность запрета выполнения определенных команд для заданных пользователей.

Добавив несколько команд для бота, такие как: отправка, чтение СМС, просмотр пропущенных звонков, информация о батарее, определение местоположения и др., я опубликовал приложение в Google Play, создал темы на нескольких форумах, стал ждать комментарии и отзывы.

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

Это немного помогло, но появилась другая проблема, AlarmManager некорректно работал на некоторых китайских устройствах. И поэтому бот иногда не просыпался после нескольких часов, проведенных в состоянии сна. Изучая официальную документацию, я читал о том, что Long Polling это не единственная возможность получения сообщений, сообщения еще можно было получать используя Webhook.

Получение сообщений через Webhook

Я зарегистрировался на Digital Ocean, создал VPS на Ubuntu, затем реализовал простейший http сервер на Java, использующий Spark Framework. На сервер можно делать запросы 2 типов: push (отправка пуш-уведомления через webhook) и ping.

Пуш-нотификации отправлялись с помощью Google Firebase.

Генерация SSL сертификата

Протестировав отправку пуш-уведомлений, я стал разбираться с тем, как настроить и запустить сервер с HTTPS, так как это одно из требований при получении сообщений из Telegram через webhook.

Бесплатный сертификат можно сгенерировать с помощью сервиса letsencrypt.org, но одним из ограничений является то, что указываемый хост при генерации сертификата не может быть ip адресом. Регистрировать доменное имя я пока не хотел, тем более официальная документация Telegram Bot API разрешает использование самоподписанных сертификатов, поэтому я стал разбираться, как создать свой сертификат.

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

После запуска скрипта, на выходе получаем два файла: keystore.jks — используется на сервере, public_cert.pem — используется при установке webhook в Android приложении.

Для того, чтобы запустить HTTPS на Spark Framework достаточно добавить 2 строки, одну указывающую порт (разрешенные порты для webhook: 443, 80, 88, 8443), другую, указывающую сгенерированный сертификат и пароль к нему:

Чтобы установить webhook для бота, необходимо добавить в андроид-приложение следующие строки:

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

Функция чтения публичного сертификата из RAW ресурса:

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

Автоматическое создание бота

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

В этом мне помогла библиотека tdlib от создателей Telegram. К сожалению, я нашел очень мало примеров использования этой библиотеки, но разобравшись в API, оказалось, что не так все сложно. В итоге удалось реализовать авторизацию в Telegram по номеру телефона, добавление @Botfather в список контактов и отправку и получение сообщений заданному контакту, а в конкретном случае, боту @Botfather.

Добавление новых возможностей

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

По просьбам пользователей, я также добавил возможность вызова команд Tasker и отправки сообщений из Tasker в Telegram.

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

Заключение

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

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

Remote bot for telegram как настроить whatsapp

Last version with SMS support available in Telegram group @rembofort

You can create a bot in automatic or manual mode. To automatically create a bot, you only need to enter your phone number in the international format (starting with +), then the code that will be sent by SMS or to the Telegram client, after that you can come up with a username and the name of the bot, or leave everything as it is.

After the actions taken, the application takes over all interaction with @Botfather, you just have to wait until the bot creation process is over. After creating a bot, you need to launch the bot and find the bot's contact in the Telegram client and write to him, then enter the confirmation code that will come in the notification from the Remote Bot or will be available in the Access Control section.

In case you want to create a bot manually, you will need to do the following:

1. Open Telegram

2. Find "botfather" in the search, select it and click Start

3. Send /newbot to create a new bot

4. Come up with and enter a name for the bot

5. Create and enter a username for the bot (username). It must be unique and end with `bot`. For example TetrisBot or tetris_bot.

6. Copy the Token, it will be required when configuring the bot in the application

7. Next, go to the application and insert the Token and start the bot.

8. Go to Telegram and find your created bot in the search by bot username and click Start, then enter the confirmation code that will come in the notification from the Remote Bot or will be available in the Access Control section.

Обзор Remote Bot. Удалённое управление телефоном через Telegram, Viber и SMS

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

Remote Bot — Android-приложение для удалённого управления вашим телефоном через Telegram, Viber или СМС с поддержкой Tasker.

Настройка

Пожалуй, самое сложное для новичка — это первый запуск приложения. Во-первых, надо будет выдать кучу разрешений. Во-вторых, создать Telegram- или Viber-бота.

Такое количество требований обосновано спецификой Remote Bot. Если вы хотите управлять смартфоном и пересылать уведомления, значит, придётся выдать все необходимые права.

Бота можно создать автоматически, но для этого потребуется предоставить доступ к своему Telegram-аккаунту. Вариант так себе и не работает с двухфакторной защитой.

Либо можно создать бота от руки, и просто указать «Bot Token» в приложении. Гайд по созданию бота встроен в Remote Bot, да и в сети полно инструкций.

Что умеет

С помощью Remote Bot можно решить множество различных задач. А благодаря интеграции с Tasker возможности действительно безграничны.

Если обобщить, то список возможностей такой:

  • Пересылка уведомлений от приложений с возможностью отвечать на них;
  • Пересылка и отправка СМС в Telegram и Viber;
  • Уведомления о пропущенных звонках, уровне батареи и прочем;
  • Поиск телефона;
  • Антивор;
  • Управление плеером;
  • Таймеры, скрипты и прочая автоматизация.

Все типы автоматизации настраиваются с главного экрана Remote Bot. Всего есть две основные настройки: пересылка уведомлений и пересылка событий.

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

Дополнительно можно настроить условия, при которых будет срабатывать триггер: текст или заголовок содержит/не содержит ключевые слова и тому подобное. Исключить какие-то уведомления по типу: только новые, с возможностью ответа и прочее.

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

В Pro-версии можно настроить свой шаблон сообщения.

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

Среди дополнительных настроек в Remote Bot есть возможности интеграции с Tasker и скриптов автоматизации. С их помощью можно настроить автоматический запуск триггеров.

Telegram и Viber Bot

В меню «Настройки бота» можно настроить работу бота в мессенджере. То есть его возможности и внешний вид.

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

Я уже несколько раз пробовал настроить синхронизацию оповещений и СМС между устройствами. Каждый раз я через какое-то время понимал, что не так уж это мне и нужно

Remote Bot предлагает уникальный взгляд на эту проблему — получение оповещений в мессенджере. Если вам удобен такой способ, то именно это приложение нужно вам. Надеюсь, что очередное обновление правил Google Play не убьёт эту разработку, и ребята продолжат развиваться.

Добавить комментарий

Ваш адрес email не будет опубликован.