Отправить сообщение в чат.
Раздел API: Сообщения
messages.sendMessage#545cd15a flags:# no_webpage:flags.1?true silent:flags.5?true background:flags.6?true clear_draft:flags.7?true noforwards:flags.14?true update_stickersets_order:flags.15?true invert_media:flags.16?true allow_paid_floodskip:flags.19?true peer:InputPeer reply_to:flags.0?InputReplyTo message:string random_id:long reply_markup:flags.2?ReplyMarkup entities:flags.3?Vector<MessageEntity> schedule_date:flags.10?int schedule_repeat_period:flags.24?int send_as:flags.13?InputPeer quick_reply_shortcut:flags.17?InputQuickReplyShortcut effect:flags.18?long allow_paid_stars:flags.21?long suggested_post:flags.22?SuggestedPost = Updates;
| Поле | Тип | Описание |
|---|---|---|
| flags | # | Битовая маска: поле вида flags.N?T присутствует, только если поднят бит N. |
| no_webpage | flags.1?true | Не разворачивать предпросмотр ссылки. |
| silent | flags.5?true | Отправить без звука: получатель не увидит уведомления. |
| background | flags.6?true | Фоновая отправка, без уведомления и без поднятия чата. |
| clear_draft | flags.7?true | Стереть черновик в этом чате после отправки. |
| noforwards | flags.14?true | |
| update_stickersets_order | flags.15?true | |
| invert_media | flags.16?true | Показать вложение под текстом, а не над ним. |
| allow_paid_floodskip | flags.19?true | |
| peer | InputPeer | Собеседник или чат, к которому относится запрос. |
| reply_to | flags.0?InputReplyTo | На что отвечает сообщение. |
| message | string | Текст сообщения. |
| random_id | long | Случайное число от клиента. Сервер по нему отбрасывает повторы, если запрос ушёл дважды. |
| reply_markup | flags.2?ReplyMarkup | Клавиатура под сообщением. |
| entities | flags.3?Vector<MessageEntity> | Разметка текста: жирный, ссылки, упоминания и прочее — списком отрезков. |
| schedule_date | flags.10?int | Когда отправить, unix-время. Если задано — сообщение уйдёт позже. |
| schedule_repeat_period | flags.24?int | |
| send_as | flags.13?InputPeer | От чьего имени отправлять — канала или другого профиля. |
| quick_reply_shortcut | flags.17?InputQuickReplyShortcut | |
| effect | flags.18?long | |
| allow_paid_stars | flags.21?long | |
| suggested_post | flags.22?SuggestedPost |
Собрано из кода обработчика — это то, что сервер действительно возвращает по этому методу.
| Код | Тип | Что это значит |
|---|---|---|
| 403 | USER_NOT_PARTICIPANT |
Вы не состоите в этом чате. |
| 403 | YOU_BLOCKED_USER |
Вы заблокировали этого пользователя — сначала снимите блокировку. |
| Код | Тип | Что это значит |
|---|---|---|
| 401 | AUTH_KEY_UNREGISTERED |
Сессия неизвестна серверу: ключ отозван, устарел или вызов сделан до авторизации. |
| 401 | API_ID_INVALID |
api_id не выдавался или заблокирован. Ключи выдаёт my.ansible.su. |
| 400 | CONNECTION_LAYER_INVALID |
Клиент не сообщил слой или сообщил слой, которого сервер не знает. |
| 420 | FLOOD_WAIT_X |
Слишком часто. Повторить не раньше чем через X секунд — число приходит в тексте ошибки. |
| 500 | INTERNAL |
Ошибка на нашей стороне. Запрос можно повторить; если повторяется — это баг у нас. |
Этот вызов считается тяжёлым: его стоимость растёт вместе с объёмом данных, поэтому под пиковой нагрузкой он проходит через контроль допуска и может ответить
FLOOD_WAITтам, где лёгкие вызовы проходят всегда. Ретраи стоит строить с выдержкой.