Нормальная инструкция по созданию стикеров-информеров
Полтора месяца назад я увидел статью про стикеры-информеры, а потом вышла статья от Aviasales, гордо названная инструкцией по созданию таких же. Тут меня осенило, что нужно сделать свои стикеры с блэкджеком и куртизанками, а потом написать адекватную инструкцию.
Собственно, что я и сделал. Долго думать над темой мне было лениво, так что я взял самый тупой вариант — погоду. Ну и сделал стикеры, а потом забыл про них на месяц.
Пользуйтесь: ссылка для тех, у кого заблокирован Telegram.
Спустя месяц мне начали приходить просьбы добавить разные другие города, и я решил — вот она, популярность (на самом деле нет). Я подумал, что вместо того чтобы самому добавлять города, пусть люди сами делают себе такие модные стикеры.
Итак, собственно, инструкция:
Этап 0. Придумать, о чём вы хотите информировать людей.
Этап 1. Сделать бота в Telegram (про это уже был миллион статей, подробнее почитать можно, например, на «Хабре»).
Этап 2. Создать от имени бота свой стикерпак с первым стикером путём отправки простейшего запроса:
Тут возникают первые сложности:
Во-первых, где взять свой User ID: идём в поиск Telegram и ищем бота, который отвечает вашим ID (например @userid_bot).
Во-вторых, как загрузить картинку: загрузите её к себе на сервер и отдавайте в Telegram просто её адрес в интернетах.
В-третьих, Telegram говорит, что ваш запрос не секьюрный: мессенджер просит, чтобы у вас был SSL и вот это всё. Решение очевидно — выполнять запросы с адреса, на котором есть SSL, а не локально.
Этап 3. Добавляем свои стикеры.
К этому моменту вы уже должны уметь генерировать стикеры, которые вы будете загружать, сделать это можно на любом языке.
Всё практически аналогично предыдущему запросу, за исключением того, что это другой запрос и другие данные:
Поздравлю, вы восхитительны. Но что дальше?
Этап 4. Обновляем стикеры.
Чтобы обновить стикер, нужно удалить старый. Я делаю это не самым оптимальным путём, так как не хочу хранить на сервере промежуточную информацию о стикерах (читать как: мне лень было поднимать базы данных).
Поэтому получаем список стикеров в стикерпаке запросом.
Находим в нём стикер, который вы хотите обновить, по его эмодзи,
берём его file_id и затем удаляем путём отправки запроса:
А теперь просто отправляем новый, используя запрос из третьего этапа. Обратите внимание, если вы передаёте URL с адресом картинки, а не грузите её напрямую, то он каждый раз должен быть уникальным, так как Telegram кэширует данные.
Этап 5. Поздравляю, вы восхитительны, пишите статью на vc.ru и в «Спортлото»!
Если кому-нибудь будет интересно, я оформил всё вышесказанное в коде и опубликовал на GitHub. Будте готовы страдать, там наговнокожено
```
Во-первых, где взять свой User ID: идём в поиск Telegram и ищем бота, который отвечает вашим ID (например @userid_bot).
Во-вторых, как загрузить картинку: загрузите её к себе на сервер и отдавайте в Telegram просто её адрес в интернетах.
```
Я правильно понял, что работоспособность стикерпака у сотен юзеров зависит от одного бесплатного бота и непонятного сервера?
А вообще крутая тема, ты восхитителен :)
Ну ты можешь создать своего бота, который тебе ответит твоим же userid если ты его по какой-то причине не знаешь. Другого, адекватного способа получить свой userid нет.
Ну если ты переживаешь за надежность сервера с которого ты грузишь обновления, можешь грузить на прямую в телеграм, но мне было лень
Пишем своему боту и смотрим ID в json, который придёт скрипту бота.
ой, ступил) А удалить уже не могу
Работоспособность стикеров не зависит от бота, который отвечает ID. Он нужен только один раз.
Нормально
Интересно, давайте на github)
Все думал кто-то сделает с курсами межбанка такое, но, вероятно, не судьба...
Сам, как говорится, «гуманитарий»
Ну я оформил простой пример, это говнокод на богомерзком PHP, приправленный плохими практиками, так что будте готовы страдать: https://github.com/kokoulin/telegram-stickers
Ушел в fintech из банка, за «страдать» соскучился. Спасибо)
Это вы богомерзкий, а php в после 7.0 отличный язык для промышленной разработки.
Судя по вашему коду, вы даже не джун. А уже так смело поносите технологию.
А вы не умеете в сарказм (:
Вы восхитительны!
Ееее, топовые стикеры))
Комментарий недоступен
И? Это все еще не быстрее чем написать цикл и запрос, и все ровно нужно еще сущности описывать для моделей которые в бд храниться будут. Для маленького тупого скрита это немного излишне