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

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

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

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

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

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

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

Стикеры

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

Как отправить Telegram premium эмодзи без premium (На Android , а на айфоне точно не знаю)


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()); >>

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

Обзор ПЛАТНОЙ ВЕРСИИ ТЕЛЕГРАМ 8.8: КАК ИСПОЛЬЗОВАТЬ БЕСПЛАТНО, НОВЫЕ ФИШКИ, Telegram Premium


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:

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

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

Еще по теме:  Win10 Телеграмм в автозагрузке

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

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

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

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

com.vdurmontemoji-java3.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»)

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

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

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

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

Еще по теме:  Отгрузка товаров на Озон fbs

Добавим в список команд команду 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

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

Результат работы выглядит вот так:

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

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

Как, например, видно тут:

Смайл с кодом :face_with_monocle:почему-то не детектируется этой библиотекой.

Итак, обработчик у нас есть. Как мы передадим ему задание?

Т.к. мы уже знаем, что текстовое сообщение со смайликами внутри детектируется как команда TEXT_CONTAIN_EMOJI — в MessageReciever нам нужно указать, что за обработку этой команды ответственен отдельный хендлер EmojiHandler.

case TEXT_CONTAIN_EMOJI: EmojiHandler emojiHandler = new EmojiHandler(bot); log.info(«Handler for command[» + command.toString() + «] is: » + emojiHandler); return emojiHandler;

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

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

Как добавить анимированные эмодзи в Телеграме? Где их найти?

Хочу отправлять анимированный смайлы в Телеграме, как мне их включить? Как запустить?

Где искать анимированные смайлики в Телеграме? Где они находятся?

Где в Телеграм анимированные эмодзи? Не получается их запустить, как это сделать? Как открыть из в приложении и отправить собеседнику?

Телеграм, новые анимированные смайлы, где они? Как можно их добавить к себе? Как отправлять их и пользоваться ими?

комментировать
в избранное бонус
Пани Паник­ а [138K]
4 месяца назад

Чтобы добавить анимированные эмодзи в Телеграме, вы можете воспользоваться следующими возможностями:

  1. Использовать сторонние приложения: существует множество сторонних приложений, которые позволяют вам бесплатно скачивать и отправлять анимированные эмодзи в Телеграме. Вы можете найти такие приложения в App Store или Google Play.
  2. Использовать стикерпаки: в Телеграме существует множество стикерпаков, содержащих анимированные эмодзи.

Чтобы найти стикерпаки с анимированными эмодзи, вы можете использовать поиск в Телеграме.

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

Чтобы найти и использовать стикерпаки в Телеграме:

  • Откройте Телеграм и найдите чат, в котором вы хотите использовать стикерпак.
  • Нажмите на иконку стикера (буква «T» с цветным квадратом вокруг нее) в нижней части экрана.
  • В списке стикерпаков выберите нужный вам стикерпак.

Источник: www.bolshoyvopros.ru

Почему в Apple не давали обновить Telegram – объяснение Дурова

К 9-летию существования мессенджер выпустил обновление со множеством любопытных функций. Но они не для всех.

Почему в Apple не давали обновить Telegram – объяснение Дурова

Дата публикации: 15 августа 2022
Редактор TexTerra
Время чтения: 4 минуты

Почему в Apple не давали обновить Telegram – объяснение Дурова

Александр Хлынов Редакция «Текстерры»

Мессенджеру Telegram исполнилось девять лет: 14 августа 2013 года компания Павла Дурова «Digital Fortress» выложила в AppStore версию Telegram для iOS. В Google Play мессенджер появился немного позже – 20 августа.

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

Укрепив свои позиции (свыше 1 млрд скачиваний и более 700 млн активных пользователей) Telegram начал монетизироваться: осенью прошлого года появилась рекламная платформа Telegram, а в начале лета этого года – платная подписка Telegram Premium.

Telegram и сервис онлайн обучения Unigram обновились до версии 8.9, а Telegram Desktop – до версии 4.1.

Только в 2022 году мессенджер обновился уже десять раз. Например, в нем появилась возможность записи видеотрансляций, видеостикеры, веб-боты, анимированные и даже интерактивные эмодзи и множество других возможностей.

Анимированные смайлики «Телеграма»

С обновлением от 12 августа в Telegram, например, появилась платформа для создания эмодзи – это 10 анимированных наборов с 500+ смайликами, и библиотека будет постоянно пополняться. Их можно использовать как в сообщениях, так и в подписях к файлам. При этом, если кто-то из собеседников кликнет по ним или тапнет, то смайлик оживет и участники чата увидят анимацию. Кроме того, пользователи могут создавать свои собственные эмодзи.

Чтобы отправлять анимированные смайлики, нужно стать Premium-пользователем. Стоит это 299 рублей в месяц (в момент появления за это просили 449 рублей в месяц), а подключается через «Настройки», где нужно выбрать пункт «Telegram Premium». Видеть эти эмодзи будут все пользователи Telegram. О преимуществах премиальной подписки (быстрая загрузка файлов до 4 ГБ каждый, уникальные стикеры, дополнительные инструменты для управления чатами и так далее) мы писали.

Продвинем ваш бизнес

В Google и «Яндексе», соцсетях, рассылках, на видеоплатформах, у блогеров

Протест Apple

Обновление могло появиться и раньше, но его задерживали в Apple. Компании не понравились анимированные эмодзи, которые Павел Дуров называет Telemoji (телемодзи).

«После широкого освещения моего предыдущего поста в СМИ Apple ответила нам требованием уменьшить функциональность предстоящего обновления Telegram, удалив Telemoji — более качественные версии стандартных эмодзи в векторном формате с анимацией. Это загадочный шаг со стороны Apple, ведь Telemoji создали бы совершенно новое измерение для их статических смайликов низкого разрешения и значительно обогатили бы их экосистему. Но на долгосрочную перспективу это благо для Telegram – теперь мы сделаем Telemoji еще более уникальными и узнаваемыми. Кроме того, в сегодняшнее обновление мы включили 10 других пакетов эмодзи — вместе с возможностью для любого пользователя загружать свои», – рассказал Павел Дуров.

В итоге iOS и ее пользователи остались без Telemoji, но Дуров не исключает, что они все-таки появятся на устройствах компании Apple.

Другие приятности обновления «Телеграма»

Кому теперь принадлежит Telegram и где его офис

  • Новый дизайн панели стикеров для iOS, который позволяет переключаться между стикерами, эмодзи и гифками так же просто, как в версиях «Телеграма» для Android, компьютеров и браузеров.
  • У платных подписчиков появилась возможность запрета на отправку вам голосовых и видеосообщений. К счастью, здесь можно настроить запрет на отправку сообщений конкретным пользователем. Также это можно запретить всем или только людям не из списка контактов.
  • Premium-пользователи могут дарить Telegram Premium другим пользователям мессенджера сроком на 3 или 6 месяцев, либо на год. За такой подарок придется, конечно, заплатить, но при этом мессенджер дает хорошую скидку. Дарится подписка через профиль того или иного пользователя, где нужно зайти в раздел «Подарить Premium». И это хороший способ получить Telegram Premium, если договориться с обладателем платной подписки, что вернете потраченные на вас деньги.

Кому теперь принадлежит Telegram и где его офис

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

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