Найти сообщения.
Раздел API: Сообщения
messages.search#29ee847a flags:# peer:InputPeer q:string from_id:flags.0?InputPeer saved_peer_id:flags.2?InputPeer saved_reaction:flags.3?Vector<Reaction> top_msg_id:flags.1?int filter:MessagesFilter min_date:int max_date:int offset_id:int add_offset:int limit:int max_id:int min_id:int hash:long = messages.Messages;
| Поле | Тип | Описание |
|---|---|---|
| flags | # | Битовая маска: поле вида flags.N?T присутствует, только если поднят бит N. |
| peer | InputPeer | Собеседник или чат, к которому относится запрос. |
| q | string | Поисковый запрос. |
| from_id | flags.0?InputPeer | Отправитель. |
| saved_peer_id | flags.2?InputPeer | Раздел в «Избранном», к которому относится запрос. |
| saved_reaction | flags.3?Vector<Reaction> | |
| top_msg_id | flags.1?int | Идентификатор темы форума. |
| filter | MessagesFilter | Фильтр выборки. |
| min_date | int | |
| max_date | int | |
| offset_id | int | Идентификатор, с которого продолжать выборку. |
| add_offset | int | Дополнительный сдвиг относительно offset_id. |
| limit | int | Сколько записей вернуть максимум. |
| max_id | int | Верхняя граница по идентификатору. |
| min_id | int | Нижняя граница по идентификатору. |
| hash | long | Хеш того, что уже есть у клиента. Если совпал, сервер отвечает «не изменилось» и не шлёт данные заново. |
Своих ошибок у этого метода нет: он либо отвечает, либо падает на общих проверках ниже.
| Код | Тип | Что это значит |
|---|---|---|
| 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там, где лёгкие вызовы проходят всегда. Ретраи стоит строить с выдержкой.