Как добавить эффект в сообщение? Как отправить стикер? Как отправить пустое или невидимое сообщение? Всё будет, но сначала узнаем свой chat_id без использования сторонних ботов.
Откройте ТГ и отправьте в свой чат любое сообщение. После этого выполните запрос с методом getUpdates:
https://api.telegram.org/botTOKEN/getUpdates
Если к боту не подключен вебхук, а на наших занятиях мы точно этого не делали, то в случае успешного выполнения запроса в результатах отобразится отправленное сообщение с дополнительными полями. Смотрим значение по пути result/message/chat/id (для приватного чата он совпадает с from/id), которое и есть ID нашего чата. Теперь при помощи бота мы можем отправить себе что-то интересное.
Отправка сообщения с эффектом методом sendMessage
{
"chat_id": 123...,
"text":"Cообщение с эффектом",
"message_effect_id":5046509860389126442
}
Для не-премиум аккаунтов доступно 6 эффектов:
Если подкинуть в ТГ деньжат за премиум-аккаунт, то станут доступны и другие эффекты.
Отправка стикера sendSticker
В ТГ отправьте в свой чат понравившийся стикер. Выполните после этого метод getUpdates и скопируйте значение поля file_id. У меня он содержит строку "CAACAgIAAx...", которую нужно вставить в параметр
https://api.telegram.org/botTOKEN/sendSticker
{
"chat_id": 123...,
"sticker": "CAACAgIAAx..."
}
Вишенка готова.
Хотите увидеть чего-то погорячее? Хорошо.
Отправка пустого или невидимого сообщения sendMessage
{
"chat_id": 123...,
"text": ""
}
Если не получилось, то найдите в символах Юникода невидимый плюс и вставьте его между кавычками в параметр text.
Чувствуете потенциал невидимых символов? Это как раз тот случай, когда их можно использовать либо на благо, либо во вред. Например, может возникнуть мысль сделать своё имя в профиле невидимым на свой страх и риск. За это можно получить бан (поскольку это является нарушение соглашения использования ТГ) и большого смысла в этом нет. Можно поиграть с друзьями в Шерлока Холмса и в сообщениях кодировать невидимые послания. Но есть и более интересное применение, например, пометка невидимым символом правильных ответов, добавив его в текст вопросов для теста. Скажем так: невидимые символы можно использовать в качестве служебных, которые помогают разработчикам реализовать необходимую функциональность более простым образом.
При помощи метода sendDice можно создать простую игру типа "Угадай число или счёт":
{
"chat_id": 123...,
"emoji" : "⚽"
}
Добавление кнопок к сообщению editMessageReplyMarkup:
{
"chat_id": `123...,
"message_id": 456...,
"reply_markup": {
"inline_keyboard": [
[
{
"text": "Дальше",
"callback_data" : "next"
}
]
]
}
}
Некоторый навык составления запросов для бота у нас теперь есть и можно перейти к вопросам программирования бота. Какой на ваш взгляд язык программирования для этого лучше использовать?