Как отправить код в telegram

GeekBrains

Форматирование текста в Telegram

А вы знаете, что в Telegram можно форматировать текст: жирный, курсив, код … и т.п.? Для этого можно использовать готовых ботов или Telegram Bot API, что не так и сложно; а можно стандартные средства месенджера … главное знать как!

Форматирование текста в Telegram

Начнём с того, что до недавнего времени форматирование текста сообщений в Телеграм было доступно только ботам. Оно и сейчас доступно им в гораздо большем объёме и стилях.

HTML стиль разметки текста сообщений в Telegram

alt="Markdown стиль разметки текста сообщений в Telegram" width="430" height="300" /> Markdown стиль разметки текста сообщений в Telegram HTML стиль разметки текста сообщений в Telegram

Конечно, у такого способа есть один ключевой недостаток — публикация сообщения от имени бота или с указанием «via» бота. Да и нужно же создать этого бота или использовать существующий, например @bold.

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

Форматирование текста через своего Telegram бота

Ну а тем, кто всё же хочет воспользоваться своим ботом, без программирования, подскажу один лайфхак. О том, как создать и получить токен бота я уже рассказывал и теперь мы можем воспользоваться Telegram Bot API для отправки запроса через адресную строку браузера … как говорится: почувствуй себя хацкером!

Такой URL имеет следующий формат:

  • <token> &#8212; та самая строчка токена (ключа);
  • <method> &#8212; один из методов Telegram Bot API &#8230; в нашем случае мы будем использовать sendMessage для отправки сообщения через бота в чат, канал и прочее;
  • <params> &#8212; параметры запроса &#8230; в нашем случае мы рассмотрим только 3 их них:
  • chat_id &#8212; уникальный идентификатор или юзернейм (с @ в начале) канала, чата, прочее;
  • text &#8212; текст сообщения с разметкой;
  • parse_mode &#8212; стиль размеки, мы будем использовать Markdown .

Примечание: для того чтобы бот мог отправить сообщения в канал, чат, прочее . ему нужно иметь там права на постинг, т. е. быть админом.

Например, в админах канала @freepr42 есть бот @freepr42_bot &#8230; его <token> я конечно вам не скажу. Метод, напомню, sendMessage . В качестве chat_id используем юзернейм канала @freepr42 . В качестве text значение, например: это *жирный*, _косой_ и `код` . Параметр parse_mode , напомню, Markdown . В результате мы получаем URL:

Ща посмотрим, что из этого получится&#8230;

Опубликованное Telegram ботом сообщение с форматированием текста

Опубликованное Telegram ботом сообщение с форматированием текста

Как вы видите, у нас всё получилось, и ничего сложного в этом нет &#8230; а ниже я выложу скриншот результата обращения по указанному URL в браузере &#8230; там будет ответ Telegram в формате JSON.

ответ Telegram Bot API в формате JSON

ответ Telegram Bot API в формате JSON

Форматирование текста через Telegram бота @bold

А теперь о @bold боте. Совсем чуть-чуть, но его стоит упомянуть.

Начну с того, что @bold является одним из официальных и старейших ботов Telegram и служит для создания небольших (до 260 знаков, без учёта знаков разметки, остальное урезается) сообщений с форматированием текста в inline-режиме (прописывается via бота).

Для использования @bold бота начните сообщение с его юзернейма, а потом укажите текст с разметкой, напримере:

По мере ввода текста бот выдаст всплывающее меню с вариантами разметки: Bold, Italic и Fixedsys (для форматирования строки текста в целом) и Custom (если вы использовали Markdown разметку).

Скриншот Telegram на Windows с использованием @bold бота для форматирования текста небольших сообщений

Скриншот Telegram на Windows с использованием @bold бота для форматирования текста небольших сообщений

Визуальная форматирование текста на iPhone / iPad

Ну, а теперь у нас на очереди те возможности форматирования текста, которые доступны в приложении Телеграм. И начнём мы с Telegram для iPhone / iPad, т. к. только тут (насколько мне известно) доступно визуальное форматирование текста.

  1. Введите текст в поле ввода.
  2. Выделите форматируемый фрагмент текст.
  3. Появится меню где будет пункт &#171;BIU&#187;.

Примечание: на старых (уже?) iPhone / iPad это может и не работать.

Cкриншот Telegram на Iphone с использованием визуального форматирования текста сообщения.

Cкриншот Telegram на Iphone с использованием визуального форматирования текста сообщения.

Форматирование текста на остальных устройствах

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

Markdown разметка текста в приложении Telegram

Markdown разметка текста в приложении Telegram

Не приходит код от Телеграм

Не приходит смс от Телеграм

Мессенджер Телеграм использует опцию верификации пользователя с помощью смс-кода. Что это такое и какие сложности могут с ним возникать при получение смс от Телеграм, вы найдете в данной статье.

Что такое СМС-код в Телеграм

СМС-код в Телеграм— это способ верификации подлинности пользователя. Благодаря данному способу пользователь подтверждает, что он является владельцем аккаунта в Телеграм. При этом такой способ верификации является надежным, так как постоянный пароль рано или поздно могут взломать, несмотря на уровень его сложности. А одноразовый код из смс уменьшает шансы хакеров получить доступ к аккаунту пользователя Телеграм.

Код СМС от Телеграм

Код СМС в Телеграм используется при регистрации нового аккаунта, при завершении последнего сеанса, при замене номера телефона, привязанного к аккаунту, а также при входе в существующий аккаунт на новом устройстве.

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

Смс код от Телеграм

Об этой процедуре мы расскажем чуть ниже. А сейчас хотим обратить ваше внимание на несколько важных нюансов:

  • Аккаунт Телеграм всегда привязан к телефонному номеру, а это означает, что код из СМС всегда будет приходить только на привязанный к аккаунту номер.
  • СМС-код является пятизначным числом.
  • Код из СМС в Телеграм уникален и пригоден только для одноразового пользования. То есть после того, как вы его ввели, он перестает быть действительным, а это значит что для повторного использования он не пригоден.

Далее мы более подробно рассмотрим когда в Телеграме нужно использовать СМС код.

Когда Телеграм отправляет СМС-код

Когда Телеграм отправляет СМС в СМС

Итак, есть четыре случая, когда служба Телеграм отправляет код в СМС.

Регистрация нового аккаунта

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

Запрос СМС-кода при регистрации нового аккаунта

Вход с нового устройства

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

Здесь стоит отметить, что при входе в аккаунт с планшета или с ПК, код верификации приходит в приложение Телеграм на вашем смартфоне. Но бывают случаи, когда на смартфоне нет интернета или по каким-то причинам приложение Телеграм удалено. Тогда возникает необходимость воспользоваться кодом из СМС.

Для этого при входе в аккаунт на новом устройстве, после того как вы указали номер телефона (к которому привязан ваш аккаунт), нужно в окне входа выбрать опцию "Send code via SMS". После этого на ваш номер телефона придет СМС-код.

Опция "Send code via SMS"

Завершение последнего сеанса

Если вы завершите последний сеанс на смартфоне и выйдете из аккаунта, то при повторном входе Телеграм запросит код верификации. В таком случае придет код в СМС. Если вы завершите последний сеанс на планшете или ПК, то при повторном входе код верификации автоматически придет в самом приложении Телеграм, установленном на вашем смартфоне. Если приложение не установлено на смартфоне, тогда Телеграм пришлет СМС.

Только для этого надо будет опять же, как и в случае входом с нового устройства, выбрать опцию "Send code via SMS".

GeekBrains

Замена номера телефона

При привязывании нового номера телефона к существующему аккаунту Телеграм, мессенджер запросит код подтверждения ваших действий. В данном случае код тоже придет в виде СМС-уведомления.

Не приходит код в СМС от Телеграм

Не приходит СМС от Телеграм

Бывают случаи, когда при определенной процедуре, будь то регистрация нового аккаунта или вход с нового устройства, когда не приходит код смс от Телеграм . Давайте более детально рассмотрим данные проблемы и решения к ним.

При регистрации нового аккаунта

При регистрации нового аккаунта смс от Телеграм может не приходить по следующим причинам:

  • Вы пытаетесь зарегистрировать новый аккаунт с привязкой к виртуальному номеру, а не к настоящему. Мессенджер Телеграм не позволяет регистрацию нового аккаунта с помощью виртуального номера. Решение: используйте настоящий номер телефона.
  • Вы часто запрашиваете код активации. Например, произошла задержка прихода СМС от Телеграм и вы не подождав, делаете несколько новых запросов в короткий промежуток времени. При этом может появится сообщение "Too fast". Мессенджер может воспринять это как подозрительную активность и не реагировать на ваши запросы. Решение: не спешите, подождите пару минут и попробуйте заново запросить код по смс.
  • Оператор мобильной связи может воспринять код от Телеграм как спам. В таком случае, сообщение с данным кодом может, вообще, не прийти. Решение: воспользуйтесь код по звонку на телефон. Если таким способом не получится решить проблему, то вам придется обратиться в техподдержку Телеграм, а также связаться с оператором мобильной связи.
  • При нестабильной мобильной связи и различных сбоях со стороны мобильного оператора смс-код также может не приходить. Решение: проверьте уровень покрытия, либо перезагрузите смартфон, возможно, после перезагрузки вы получите запоздалые смс с кодом. В крайнем случае, свяжитесь с оператором мобильной связи.
  • Также проблемы с смс могут возникнуть по причине неполадок со стороны самого приложения Телеграм. Решение: убедитесь, что вы скачали официальное приложение Телеграм с надежных источников: Google Play Store. AppStore или официального сайта Телеграм. Если вы все-таки скачали официальное приложение, но смс-код не приходит, то вам придется обратиться в техподдержку Телеграм.

Веб-страница службы поддержки Телеграм

При входе с нового устройства

При входе в существующий аккаунт

При входе в существующий аккаунт с нового устройства код в СМС от Телеграм может не приходить в следующих случаях:

  • При входе вы не воспользовались опцией "Send code via SMS" и код подтверждения пришел в приложении Телеграм на смартфоне. Решение: отройте приложение на вашем смартфоне и введите оттуда код. Если приложения на смартфоне нет, а СМС-код не пришел, то воспользуйтесь опцией "Send code via SMS".
  • Проблема кроется на стороне оператора мобильной связи. Решение: проверьте качество покрытия мобильной связи, если с мобильной связью все хорошо, перезагрузите смартфон. Если СМС-код не пришел, тогда свяжитесь с оператором и узнайте, нет ли сбоев в доставке смс. Если со стороны оператора все в порядке, обратитесь в службу поддержки Телеграм.

Когда не требуется СМС-код

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

Как вы видите, вышеупомянутые проблемы с кодом СМС от Телеграм несложно решить. Если у вас нет времени вникать в проблему и разбираться почему не приходит СМС-код, вы всегда можете сразу обратиться в службу поддержки Телеграм. Но помните, что ответ может быть очень долгим.

Надоевшая почта или как отправлять сообщения с сайта в Telegram через Node.js (Express)

logicSchema

После нескольких писем, отправленных с сайта себе на почту, понял что это достаточно неудобно, не современно (возможно), как минимум не прикольно. Задался целью отказаться от использования smtp для формы в пользу api Телеграма.

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

Но давайте обо всем по порядку.

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

Итак, стучимся к родителю всех ботов, а именно к @BotFather и просим его создать нам одного (вводим /newbot). Вводим имя, ник и получаем токен бота. Как раз он нам и нужен. Заметьте, что ник бота должен быть <your>_bot или <Your>Bot.

@BotFather

Создали, хорошо, но надо оживить его. Ищем его в поиске по нику и пишем /start. Все, теперь можем обращаться к нему через api.

@BotFather

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

createChat

addMembers

Вводим /join @ник_бота в созданном чате, потому что бывает, что не добавляется в логи запись о приглашении бота в группу.

Идем в браузер и в адресной строке вводим:

где XXXXXXXXXXXXXXXXXXXXXXX — токен бота, который любезно дал вам @BotFather.

Если все прошло успешно, то получим примерно такую простыню из букв, где необходимо найти объект «chat»: . Обычно id группового чата начинается с минуса.

getUpdates

Отлично, получили токен бота и id чата, куда будут приходить сообщения.
Теперь давайте приступим к приложению.

Front

Начнем сначала с фронта.

Я использовал для работы Node обёртку Express, который в свою очередь умеет рендерить файлы различных шаблонизаторов. Решил воспользоваться Pug. Он достаточно прост в освоении, поэтому если впервые сталкиваетесь с ним, труда познакомится с ним не возникнет. Для примера не стал использовать сборщики, поэтому скрипты подключаются по старинке.
Структура приложения сгенерирована с помощью Express Generator.

Разметка формы

views/layout.pug:

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

Добавляем стили и вот такая форма у меня получилась.

form

Сообщение будет отправляться без перезагрузки страницы, поэтому вешаем обработчик на форму, собираем данные, преобразуем в json и отправляем их асинхронно себе в api + выводим сообщение о статусе запроса.

public/javascripts/app.js:

На стороне сервера для начала нужно отловить запрос со стороны клиента, для этого в роутере пишем:

routes/index.js:

api/telegramMsg.js:

Для упрощения процесса запроса установлен пакет ‘request‘.

config/config.json:

Итак, что же здесь происходит?

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

Для удобства каждое значение объекта запихиваем в массив.
API телеграмма позволяет передать данные посредством текста в адресной строке, поэтому проходим по массиву и создаём длинную строку. Чтобы можно было передать HTML теги, необходимо закодировать строку в универсальный идентификатор (метод encodeURI()), чтобы не вылезала ошибка.

Теперь можно наконец отправить это всё на сервер телеграмма. Делаем запрос (нажимаем кнопку ‘Отправить’) и вуаля, сообщение отправлено. Не забываем обработать ответ, а то мало ли что.

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

message

Если посмотреть в логи приложения на сервере, можно увидеть примерно следующее:

image

Поздравляю! Теперь вы знаете как отправлять сообщения с вашего сайта в Telegram.

Я описал только общую концепцию данного процесса, поэтому настоятельно рекомендую ознакомится с исходным кодом данного примера.

GeekBrains

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *