Отправка сообщения
- Метод: POST
- Authorization: No Auth
- URL: https://api.telegram.org/bot{token}/sendMessage?chat_id={chat_id}&parse_mode=MarkdownV2&message_thread_id={topic_id}
ВАЖНО
Вместо {token} нужно указать токен БОТа в телеграме, полученный от https://t.me/BotFather
Предупреждение — Используйте параметр parse_mode только если он вам действительно необходим. В противном случае возможны ошибки при отправке сообщений.
Если вы никак не форматируете содержимое сообщения (форматированием считается, например, наклонный или подчеркнутый текст) — не используйте parse_mode в запросе.
Описание тела запроса (inline клавиатура):
| Поле | Описание |
|---|---|
| reply_markup | объект "клавиатуры" |
| reply_markup.inline_keyboard | Инлайн клавиатура (под сообщением) |
| reply_markup.inline_keyboard.text | Текст кнопки |
| reply_markup.inline_keyboard.url | ссылка для перехода при нажатии кнопки |
| reply_markup.inline_keyboard.web_app | объект веб-аппа |
| reply_markup.inline_keyboard.web_app.url | ссылка на веб-апп |
Описание тела запроса (reply клавиатура):
| Поле | Описание |
|---|---|
| reply_markup | объект "клавиатуры" |
| reply_markup.one_time_keyboard | true - клавиатура исчезнет (свернется) после нажатия клавиши false - [значение по умолчанию] клавиатура будет существовать, пока ее не удалят или не заменят новой |
| reply_markup.input_field_placeholder | Текст-подсказка в поле ввода |
| reply_markup.resize_keyboard | true - клавиатура уменьшится по количеству строк для удобства false - [значение по умолчанию] полноразмерная клавиатура |
| reply_markup.keyboard | Реплай клавиатура (вместо системной клавиатуры / кнопки) |
| reply_markup.keyboard.text | Текст кнопки |
| reply_markup.keyboard.web_app | объект веб-аппа |
| reply_markup.keyboard.web_app.url | ссылка на веб-апп |
| reply_markup.keyboard.request_contact | запрос номера телефона |
| reply_markup.keyboard.request_location | запрос геолокации |
Описание тела запроса (Удаление reply клавиатуры):
| Поле | Описание |
|---|---|
| reply_markup | объект "клавиатуры" |
| reply_markup.remove_keyboard | true – удалить reply клавиатуру в чате |
{
"text": "Какой-то текст для отправки\nА это уже на следующей строке будет"
}
Описание тела запроса (Текст сообщения):
| Поле | Описание |
|---|---|
text | Текст для отправки. Для переноса строка используется символ переноса строки "\n" |
Описание параметров метода:
| Параметр | Обязательность | Описание |
|---|---|---|
chat_id | да | Идентификатор чата, в который будет отправлено сообщение. Узнать идентификатор чата можно, например, через https://t.me/myidbot |
| parse_mode | нет | Режим парсинга текста. Может быть MarkdownV2 или HTML. Подробнее можно прочитать здесь *Используется для форматирования текста (жирный, с наклоном и тд.) |
message_thread_id | нет | Идентификатор "темы" для отправки сообщения в тему группы, в которой включены "темы" |
{
"ok": true,
"result": {
"message_id": 1902,
"from": {
"id": 5351196660,
"is_bot": true,
"first_name": "Тестовый бот",
"username": "test_bot"
},
"chat": {
"id": -1001586696720,
"title": "Тестовая группа",
"type": "supergroup"
},
"date": 1663837925,
"text": "Тест\nТест"
}
}
ВАЖНО
В случае успешного ответа код ответа будет 200. Неуспешные ответы возвращают другой код ответа. Подробнее можете изучить на официальном сайте api telegram
Описание полей ответа:
| Поле | Обязательность | Описание |
|---|---|---|
| ok | да | Результат запроса. При успешном запросе всегда возвращает "true" |
| result | да | Массив результата ответа |
| message_id | да | Идентификатор сообщения |
| from | да | Массив информации отправителя |
| id | да | Идентификатор отправителя |
| is_bot | да | Признак того, бот ли отправитель |
| first_name | да | Имя отправителя |
| username | да | Уникальный username отправителя |
| chat | да | Массив информации чата, куда отправлено сообщение |
| id | да | Идентификатор чата |
| title | да | Название чата |
| type | да | Тип чата |
| date | да | Дата отправки сообщения |
| text | да | Текст сообщения |
Редактирование сообщения
ВАЖНО
Метод редактирования сообщения аналогичный методу отправки сообщения с несколькими особенностям:
- Новый обязательный параметр message_id, который принимает идентификатор сообщения для редактирования
- В ответе появляется поле edit_date, в которое записывается дата изменения сообщения
- НЕВОЗМОЖНО ОТРЕДАКТИРОВАТЬ СООБЩЕНИЕ С REPLY КЛАВИАТУРОЙ (с инлайн все также можно)
- Если передать тот же текст при редактировании, что и в оригинале, то вернется ошибка 400 (для редактирования только инлайн клавиатуры без редактирования текста нужно использовать метод editMessageReplyMarkup без параметра text)
- Метод: GET/POST
- Authorization: No Auth
- URL: https://api.telegram.org/bot{token}/editMessageText?chat_id={chat_id}&parse_mode=MarkdownV2&text={text}&message_thread_id={topic_id}&message_id={message_id}