Skip to content

Conversation

@tripoloski-it
Copy link
Contributor

Что сделано

Корректная сериализация параметров запроса к VK API: объекты (например, format_data) теперь отправляются как JSON-строки.

Зачем

Ранее при передаче вложенных объектов (вроде format_data) использовался URLSearchParams напрямую, что приводило к их превращению в строку [object Object]. Это нарушало совместимость с VK API, который ожидает такие параметры в виде URL-encoded JSON.

Исправление обеспечивает корректную работу с методами VK API, принимающими структурированные данные (например, messages.send с format_data).

Изменения

  • В методе make() класса APIRequest заменена логика формирования тела запроса.

@negezor
Copy link
Owner

negezor commented Nov 1, 2025

Я думаю это сломает toString() методы у классов
https://github.com/negezor/vk-io/blob/master/packages/vk-io/src/structures/keyboard/builder.ts#L298
И будет вызывать toJSON() тем где не нужно
https://github.com/negezor/vk-io/blob/master/packages/vk-io/src/structures/attachments/attachment.ts#L126

Обычно ВКонтакте указывает какой тип данных идёт, возможно стоит оставить поведение по умолчанию и применять просто format_data: JSON.stringify({}). Поскольку я старался не сильно модифицировать стандартное поведение отправки.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants