Как поставить класс в Телеграмме на сообщение

Один из вопросов, который часто приходит в личку — как работать со смайлами(эмодзи) и стикерами.

Как с ними работать, какими инструментами пользуюсь я и т.д.

В данной части будут рассмотрены такие вещи: как создать сообщение со стикером, как обработать полученное сообщение со стикером, как найти в тексте сообщения все смайлы(эмодзи), как создать сообщение с использованием смайлов (эмодзи).

Кому интересно, прошу под кат.

По-традиции, начинаем статью со ссылки на исходники по ней 🙂

Весь обсуждаемый в статье код собран в ветке Part3-Stick_and_Emoji.

Стикеры

Одна из вещей, что мне так понравилась в телеграмме, как только он появился — были стикеры. Они классные, удобные, бесплатные. И все это огромное разнообразие стикеров нам, естественно, хочется использовать и в боте. На деле эта процедура очень простая. Чтобы отправить стикер пользователю, нам нужно знать только лишь id стикера и больше ничего.
Обычно для стикеров я создаю себе вот такой класс-помощник, где храню данные о используемых в боте стикерах:

Как включить быструю реакцию в Телеграм. #телеграм #фишка #мессенджер


import org.telegram.telegrambots.api.methods.send.SendSticker; public enum Stickers < FUNNY_JIM_CARREY(«CAADBQADiQMAAukKyAPZH7wCI2BwFxYE»), ; String stickerId; Stickers(String stickerId) < this.stickerId = stickerId; >public SendSticker getSendSticker(String chatId) < if («».equals(chatId)) throw new IllegalArgumentException(«ChatId cant be null»); SendSticker sendSticker = getSendSticker(); sendSticker.setChatId(chatId); return sendSticker; >public SendSticker getSendSticker() < SendSticker sendSticker = new SendSticker(); sendSticker.setSticker(stickerId); return sendSticker; >>

Тут все просто. Мы даем стикеру имя, понятное для нас. И с помощью пары методов получаем готовые объект для отправки пользователю.

Для того, чтобы ответить на вопрос: «Где взять ID стикера?», — давайте напишем себе помощника, который эти данные нам и будет сообщать в нашем же боте.

У нас есть базовый функционал, который мы создавали тут:
TelegramBot. Базовый функционал. (Часть 2)
Чтобы наш бот начал как-то обрабатывать принятые стикеры, нам нужно:

  • Определить, что нам прислали стикер
  • Указать, какой именно хендлер ответственнен за обработку сообщений со стикерами
  • Запустить хендлер, который сформирует сообщение пользователю в ответ

В список команд мы добавили команду STICKER

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

if (message.hasText()) < parsedCommand = parser.getParsedCommand(message.getText()); >else < Sticker sticker = message.getSticker(); if (sticker != null) < parsedCommand = new ParsedCommand(Command.STICKER, sticker.getFileId()); >>

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

Как создать кнопки к постам в Telegram канале // Кнопка в закрепе ТГ канала


MessageReciever.java строка 86

case START: case HELP: case ID: case STICKER: SystemHandler systemHandler = new SystemHandler(bot); log.info(«Handler for command[» + command.toString() + «] is: » + systemHandler); return systemHandler;

Соответственно в SystemHandler нам нужно указать, как обрабатывать поступившую команду STICKER:
SystemHandler.java строка 31

case STICKER: return «StickerID: » + parsedCommand.getText();

В результате, при отправке нашему боту любой стикер — мы получим в ответ его ID:

Смайлы или эмодзи

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

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

Еще по теме:  Вывести деньги с Пушкинской карты на Сбербанк Телеграмм

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

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

В первую очередь добавим в pom.xml вот такую зависимость:

com.vdurmont emoji-java 3.3.0

Честно, уже не помню, где она мне попалась, но с тех пор пользуюсь только ей, если мне нужно что-то сделать со смайликами в моем боте.

В библиотеке собрано много разных инструментов:

Любознательным и пытливым будет где развернуться 🙂

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

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

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

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

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

Если в поле для ввода сообщения начать вводить сообщение, начинающееся с двоеточия — телеграм сам начнет показывать, какие эмодзи содержат вводимый текст тэга:

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

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

А мы, зная тэг, можем получить Unicode смайлика вот таким образом:

String emoji_kissing = EmojiParser.parseToUnicode(«:kissing:»);

Вы можно завести себе отдельный класс, в котором будете хранить смайлы, которые используете в боте. На примере того же планировщика событий, у него в арсенале вот такие смайлы:

import com.vdurmont.emoji.EmojiParser; public enum Icon < PLUS(«:heavy_plus_sign:»), MINUS(«:heavy_minus_sign:»), CHECK(«:white_check_mark:»), NOT(«:x:»), DOUBT(«:zzz:»), FLAG(«:checkered_flag:») private String value; public String get() < return EmojiParser.parseToUnicode(value); >Icon(String value) < this.value = value; >>

И вот так в коде будет выглядеть использование этого класса и конкретного смайлика:

row.add(new InlineKeyboardButton() .setText(Icon.CHECK.get() + » I’m going»)

Это код вот этой кнопки:

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

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

Задача: если присланное сообщение не содержит никакой конкретной команды, но содержит в тексте смайлы — вывести эти смайлы на экран пользователю в виде сообщения и указать их аттрибуты(тег и описание).

Добавим в список команд команду TEXT_CONTAIN_EMOJI
Command.java строка 8

public enum Command

В парсере, который определяет, что за команда содержится в нашем сообщении добавим вот такой текст:

if (result.getCommand() == Command.NONE) < ListemojiContainsInText = EmojiParser.extractEmojis(result.getText()); if (emojiContainsInText.size() > 0) result.setCommand(Command.TEXT_CONTAIN_EMOJI); >

Если мы определили, что сообщение не содержит никакой конкретной команды, но в нем есть смайлы — мы возвращаем, что мы отпарсили команду TEXT_CONTAIN_EMOJI.

Создадим отдельный хендлер, который будет обрабатывать только эту команду:
EmojiHandler.java

Еще по теме:  Каа поставить таймер в Телеграм

Кнопки Like и Dislike (урок Telegram)

Настройка Лайк дизлайк Телеграмм

Ваши ссылки: Скачать видео

Информация о видео

Настройка Лайк дизлайк Телеграмм

Боты для каналов

Постоянная ссылка на страницу:

100 идей способов рекламы Telegram

Вам также может понравиться

Всплывающие окна с видео (урок CSS)

Психотриггеры (видеоурок)

QuanBot для создания опросов (урок Telegram)

Как сделать простой сайт? (видеоурок)

Всплывающее окно на выходе с сайта (урок Adobe Muse)

Прогноз погоды (урок Telegram)

Оставить комментарий X

You must be logged in to post a comment.

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

100 идей способов рекламы Telegram

Ещё интересное видео

Описание под аудио с кнопками

Аудио + текст + кнопки и реакции (урок Telegram)

Бот обратной связи

Бот для обратной связи (урок Telegram)

Как сделать опрос в Телеграмм

Создание опросов (урок Telegram)

Источник: prodaga.com

Как закрепить сообщение в Телеграмме

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

Что значит закрепить сообщение

Фраза «Закрепить сообщение» означает поместить конкретное сообщение в верхнюю часть чата. То есть, если вы закрепите определенное высказывание, то оно всегда будет находиться в одном и том же месте. Данная функция поможет не потерять сообщение, которое так важно для вас. Кстати, можно закрепить не только своё высказывание, но и сообщения других пользователей.

Сколько сообщений можно закрепить

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

Как закрепить сообщение

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

На телефоне

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

Android

Чтобы закрепить конкретное сообщение в мессенджере Telegram через устройство с операционной системой Андроид, пользователю потребуется выполнить такой ряд действий:

  1. Открываем на смартфоне основное приложение от Телеграмма. Находим и открываем тот онлайн-диалог, в котором имеется важное сообщение. Затем, отыскиваем конкретное высказывание, которое хотите закрепить. По данному сообщению нужно будет щелкнуть один разок.
  2. Если вы все сделаете правильно, то на действующей страничке покажется небольшое окошко. В данном окне будет располагаться строка «Закрепить». Именно по этой строчке и нужно будет кликнуть.
  3. После чего, по центру страницы появится новое окошко. Если вы хотите закрепить сообщение для себя и другого участника переписки, то жмите по фразе «Также закрепить для …», где троеточие означает имя собеседника. Если вы не хотите, чтобы собеседник видел ваше закрепленное сообщение, то просто щелкните по слову «Закрепить».
  4. Вот, собственно, и все. Всего лишь за несколько элементарных кликов у вас получилось закрепить выбранное сообщение в верхней части страницы. Теперь, каждый раз, когда вы будете открывать переписку, данное сообщение будет отображаться.

iPhone

Если вы захотите закрепить определенное высказывание в чате на интернет-платформе Телеграмм, то проделайте следующий набор операций на своем айфоне:

  1. Переходим в официальное приложение от мессенджера Telegram. Находим подходящий диалог и открываем его. Затем, в данной переписке отыскиваем конкретное сообщение, которое хотим закрепить. Вам потребуется зажать пальцем по области выбранного высказывания.
  2. Таким образом, вы вызовете основное меню для взаимодействия с сообщением. Найдите в данном окошке графу «Закрепить» и нажмите прямо по ней один разок.
  3. Если вы выполните указанное выше действие правильно, то появится новое небольшое окошко. Если вы хотите закрепить сообщение только для себя, то жмите по строке «Закрепить у меня». Если вы хотите, чтобы закрепленное сообщение показалось и у вашего собеседника, то нажмите один раз по пункту «Закрепить у меня и …», где «…» означает имя вашего товарища.
  4. Готово! Теперь, каждый раз, когда вы будете открывать диалог с данным пользователем, в верхней части странички будет показываться закрепленное сообщение.
Еще по теме:  Что делать если на твой аккаунт в Телеграмме зашел другой человек как его удалить

На компьютере

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

Desktop-версия

Если на вашем персональном компьютере имеется официальная программа от мессенджера Telegram, то закрепить сообщение в выбранном чате вы сможете таким способом:

  1. Открываем программу Телеграмм на ПК или ноутбуке. В левой части экрана находим чат с пользователем и открываем его. Затем, в открывшейся переписке находим высказывание, которое хотим закрепить. Просто нажмите по этому сообщению правой клавишей мышки.
  2. Если вы выполните отмеченное выше действие правильно, то на страничке появится небольшое окно. Необходимо будет щелкнуть левой клавишей мышки по пункту «Закрепить сообщение».
  3. После этого по центру экрана появится новое окно. Если вы хотите закрепить выбранное сообщение не только у себя, то поставьте галочку в графе «Также закрепить для …», где пропущенное слово будет означать имя вашего собеседника. Если вы не хотите, чтобы человеку показывалось важное для вас высказывание, то просто щелкните левой клавишей мыши по пункту «Закрепить».
  4. На этом все. Теперь, если вы обратите внимание на верхнюю часть странички, то сможете там заметить закрепленное сообщение.

Web-версия

Закрепить конкретное сообщение допускается и через веб-версию официального сайта Телеграмм. Для этого человеку потребуется выполнить такую последовательность манипуляций:

  1. Открываем браузер и переходим на официальный сайт мессенджера Telegram. В разделе с чатами находим соответствующий диалог и открываем его. После чего, находим подходящее сообщение и нажимаем прямо по нему правой кнопочкой мыши.
  2. Если сделаете предыдущий шаг правильно, то на странице покажется небольшое окошко. Вам придется кликнуть левой кнопкой мыши по слову «Закрепить».
  3. Следующее, что вам потребуется сделать – нажать боковой клавишей мыши по слову «Закрепить». Однако если вы хотите чтобы ваш собеседник так же видел закрепленное сообщение, то перед этим вам нужно поставить галочку в пункте «Также закрепить для …», где под троеточием подразумевается имя человека.
  4. Вот, собственно, и все. Если вы выполните все указанные выше действия правильно, то выбранное сообщение будет закреплено в верхней правой части страницы.

Почему не могу закрепить сообщение

Важно понимать, что закрепить сообщение в мессенджере Telegram получится не во всех случаях. Например:

  • Если пользователь удалил свой личный аккаунт, то в диалоге с ним закрепить сообщение уже не удастся.
  • Кроме этого, закрепить сообщение можно только в личном диалоге с человеком, либо в группе таких пользователей. Если вы пожелаете закрепить сообщение в канале, где вам нельзя отправлять высказывания, то сделать этого у вас не получится.
  • Если у вас не получается закрепить сообщение в личном чате с человеком, то, возможно, у вас нет стабильного интернет-соединения.

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

Источник: tgwiki.ru

Рейтинг
( Пока оценок нет )
Загрузка ...