DroidScript
DroidScript
учимся и разрабатываем

Работа с персональным чатом

Ботостроительство  
11.12.2024

Как добавить эффект в сообщение? Как отправить стикер? Как отправить пустое или невидимое сообщение? Всё будет, но сначала узнаем свой chat_id без использования сторонних ботов.

Получение 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 эффектов:

  • 🔥 - 5104841245755180586
  • 👍 - 5107584321108051014
  • 👎 - 5104858069142078462
  • ❤️ - 5159385139981059251
  • 🎉 - 5046509860389126442
  • 💩 -5046589136895476101

Если подкинуть в ТГ деньжат за премиум-аккаунт, то станут доступны и другие эффекты.

Отправка стикера 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"
        }
      ]
    ]
  }
}

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

Ботостроительство  
© 2016-2025 
actech