Отправка текстовых сообщений
Базовый метод — sendMessage.
Простой пример
curl -X POST https://api.telefon.chat/bot<TOKEN>/sendMessage \
-d 'chat_id=12345&text=Привет!'
Параметры
| Параметр | Тип | Описание |
|---|---|---|
chat_id | int / string | ID чата (number) или @username (string) |
text | string | Текст сообщения, до 4096 символов |
parse_mode | string | HTML или MarkdownV2 для форматирования |
entities | array | Альтернатива parse_mode — список форматируемых сегментов |
disable_web_page_preview | bool | Отключить превью ссылок |
disable_notification | bool | Тихое уведомление |
protect_content | bool | Защита от пересылки/копирования |
reply_to_message_id | int | ID сообщения, на которое отвечаем |
reply_markup | object | Inline или Reply клавиатура |
Форматирование текста
HTML
{
"chat_id": 12345,
"text": "<b>Жирный</b> <i>курсив</i> <code>код</code> <a href='https://telefon.chat'>ссылка</a>",
"parse_mode": "HTML"
}
Поддерживаемые теги: <b>, <i>, <u>, <s>, <code>, <pre>, <a href>, <blockquote>, <spoiler>.
MarkdownV2
{
"chat_id": 12345,
"text": "*Жирный* _курсив_ \`код\` [ссылка](https://telefon.chat)",
"parse_mode": "MarkdownV2"
}
В MarkdownV2 спецсимволы (_*[]()~\>#+-=|.!`) нужно экранировать обратной косой.
Длинные сообщения
Лимит — 4096 символов на сообщение. Если текст длиннее, разбивайте сами:
def split(text, limit=4000):
for i in range(0, len(text), limit):
yield text[i:i+limit]
for chunk in split(long_text):
bot.send_message(chat_id, chunk)
Ответ на сообщение
{
"chat_id": 12345,
"text": "Это ответ",
"reply_to_message_id": 42
}
В UI получатель увидит цитату с превью оригинала.
Inline-клавиатура
См. раздел Inline-клавиатура.