Автоматическая пересылка SMS в Telegram c помощью Tasker (часть 1)

forward sms to telegram

Как автоматически пересылать SMS  в Telegram? Задаётесь таким вопросом? Давайте рассмотрим одно из возможных решений.




Исходные данные и инструментарий


Я пользуюсь системой клиент-банк совместно с женой. Для подтверждения операций в системе используются одноразовые пароли, которые приходят в виде SMS на мой телефон. Соответственно, если операции по движению средств выполняет жена, то я должен каждый раз пересылать ей одноразовый пароль. Это неудобно, поскольку время жизни пароля ограничено. Поэтому появилась идея автоматизировать весь процесс.

Изучив этот вопрос в Интернете, я обнаружил несколько существующих решений, но они по определенным причинам мне не подошли. Например, один из существующих сервисов — IFTTT  — имеет модуль SMS to Telegram. Я попробовал его настроить, но с номером отправителя SMS вышла загвоздка: банк, в котором я обслуживаюсь, рассылает SMS с номера в литерном виде ("Raiffeisen"), а модуль при настройке ожидает цифровой номер.

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

Я решил использовать Tasker (1.5$), как достаточно функциональное приложение для автоматизации различных процессов на устройстве. Приложение не сложное в освоении и не требует знаний в области программирования (только понимание алгоритмов). К тому же, в Интернете полно готовых рецептов для Tasker, которые можно использовать в качестве примера.

И так, нам понадобится:
  • Telegram, установленный на устройстве (опционально и на компьютере, для удобства настройки).
  • Установленный Tasker.

Порядок действий


Все необходимые действия сводятся к нескольким шагам:
  • Создать в Telegram канал или группу (чат), куда будут отправляться SMS.
  • Создать Telegram-бота, который будет отправлять сообщения в канал или группу.
  • Назначить созданного бота администратором созданного канала.
  • Настроить Tasker для обработки входящих SMS и отправки их в Telegram.
Я буду использовать приватный канал в Telegram как более удобный в моём случае. Telegram-бот создадим с помощью встроенного функционала Telegram. Уникальный идентификатор канала/чата Telegram получим с помощью Telegram Bot API. Постараюсь изложить максимально доступно для тех, кто далёк от технологий, но может повторить описанные действия. Не гарантирую, что подобный алгоритм заработает у вас, но в комментариях всегда можно обсудить возникшие проблемы, если таковые будут.



Создаем Telegram-канал


Для создания канала я буду использовать версию Telegram для Windows. Переходим в «Меню → Создать канал»:
создать канал в Telegram

Задаем имя каналу (в моём случае это «Raiffeisen SMS»), устанавливаем фото или логотип если нужно:

название канала Telegram

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

ссылка на канал Telegram

Канал создан и мы можем его наблюдать в списке контактов:

канал Telegram создан

Создаем Telegram-бота


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

botFather Telegram

Общение с ботом происходит посредством команд. Вводить команды можно как набирая вручную, так и используя для этого специальную кнопку, которая так же отобразит список доступных команд:

кнопка команд бота Telegram

Начнем создавать бота командой «/newbot»

/newbot Telegram

BotFather спрашивает название нашего бота, после чего спрашивает имя бота (имя должно быть уникальным и заканчиваться на bot). Отправляем название и имя, набирая его в строке ввода. По окончанию мы получаем token, который понадобится нам в дальнейшем. Этот token уникален для вашего бота, и его нужно держать в секрете. У меня бот тестовый, потому я его не прячу:

token HTTP API Telegram

Назначаем бота администратором канала


Для того, что бы бот мог писать сообщения в канале необходимо добавить его в администраторы канала. Для этого открываем меню канала и выбираем «Управление каналом»:

Управление каналом Telegram

В следующем окне нажимаем «Администраторы»:

добавить администратора канала Telegram

После чего в низу окна нажимаем «Добавить Администратора»:

добавить администратора канала Telegram

В строке поиска вводим имя нашего бота (в моём случае «mySMStoTelegramBot»), чтобы найти его в общем списке, и кликаем на него. Будьте внимательны, чтобы не добавить чужого бота:

добавить бота администратором канала Telegram

Соглашаемся со следующим сообщением:

добавить бота администратором канала Telegram

На следующем этапе тоже можно ничего не менять. Жмём «Сохранить»:

Возможности администратора канала Telegram

В последующих окнах нажимаем «Закрыть» и «Сохранить».

С настройками в Telegram закончили. В следующей части настроим Tasker.