Создает экземпляр класса для работы с API Маруси
Контекст приложения (обязателен)
Protected_appContextКонтекст приложения.
Protected_errorПоследняя ошибка (объект ответа API, Error или текст)
Protected_requestЭкземпляр класса для выполнения HTTP-запросов
Флаг для прямой передачи содержимого файла По умолчанию: false
Токен доступа к VK API
Protected_logПишет информацию об ошибках через AppContext.logError (структурированный логгер)
Текст ошибки для логирования
Получает URL для загрузки документов в сообщения
ID получателя сообщения
Тип документа:
Данные для загрузки или null при ошибке
// Загрузка обычного документа
const server = await vk.docsGetMessagesUploadServer(12345, 'doc');
// Загрузка голосового сообщения
const server = await vk.docsGetMessagesUploadServer(12345, 'audio_message');
// Загрузка граффити
const server = await vk.docsGetMessagesUploadServer(12345, 'graffiti');
Сохраняет загруженный документ
Идентификатор документа
Название документа
Теги документа
Информация о сохраненном документе или null при ошибке
Инициализирует токен доступа к VK API
Токен доступа к VK API
Сохраняет загруженный аудиофайл в Марусе
Метаданные аудиофайла после загрузки
Результат сохранения или null при ошибке
После успешного сохранения аудиофайл становится доступным в навыке и может быть использован в голосовых ответах.
// Полный процесс загрузки и сохранения аудио
const uploadLink = await marusia.marusiaGetAudioUploadLink();
if (uploadLink) {
const upload = await marusia.upload(uploadLink.audio_upload_link, 'audio.mp3');
if (upload) {
const audio = await marusia.marusiaCreateAudio(upload);
if (audio) {
console.log('ID аудио:', audio.id);
console.log('URL аудио:', audio.url);
}
}
}
Удаляет загруженный аудиофайл из Маруси
Идентификатор загруженного аудиофайла
Результат удаления или null при ошибке
Удаляет загруженное изображение из Маруси
Идентификатор загруженного изображения
Результат удаления или null при ошибке
Запрашивает URL для загрузки аудиофайла на сервера Маруси
Данные для загрузки аудио или null при ошибке
Получает список всех изображений из навыка
Ответ API Маруси (структура items аналогична Алисе) или null при ошибке
Метод возвращает информацию о всех изображениях, загруженных в навык:
// Получение списка изображений. Метод возвращает Promise<unknown> —
// структура items аналогична Алисе, поэтому приводим тип явно.
const pictures = await marusia.marusiaGetPictures();
if (pictures) {
const pics = pictures as { items: IMarusiaImage[] };
pics.items.forEach(picture => {
console.log('ID:', picture.id);
console.log('URL:', picture.url);
console.log('Превью:', picture.preview_url);
});
}
Запрашивает URL для загрузки изображения на сервера Маруси
Данные для загрузки изображения или null при ошибке
Сохраняет загруженное изображение в Марусе
Идентификатор загруженного изображения
Идентификатор сервера загрузки
Хэш-сумма для проверки изображения
Результат сохранения или null при ошибке
После успешного сохранения изображение становится доступным в навыке и может быть использовано в карточках и других элементах интерфейса.
// Полный процесс загрузки и сохранения изображения.
// Поля photo/server/hash у IVkUploadFile опциональны —
// после проверки upload сохраняем их в константы-строки
const uploadLink = await marusia.marusiaGetPictureUploadLink();
if (uploadLink) {
const upload = await marusia.upload(uploadLink.picture_upload_link, 'image.jpg', 'photo');
if (upload?.photo && upload?.server && upload?.hash) {
const photo: string = upload.photo;
const server: string = upload.server;
const hash: string = upload.hash;
const picture = await marusia.marusiaSavePicture(photo, server, hash);
if (picture) {
console.log('ID изображения:', picture.id);
}
}
}
Отправляет сообщение пользователю или в чат
Идентификатор получателя:
domain, а не peer_idТекст сообщения
Дополнительные параметры:
Информация об отправленном сообщении или null при ошибке
// Простое сообщение
await vk.messagesSend(12345, 'Привет!');
// Сообщение с вложениями
await vk.messagesSend(12345, 'Фото:', {
attachments: ['photo123_456', 'doc123_456']
});
// Сообщение с клавиатурой
const keyboard = {
one_time: true,
buttons: [[{
action: {
type: 'text',
label: 'Кнопка',
payload: '{"button": 1}'
},
color: 'primary'
}]]
};
await vk.messagesSend(12345, 'Выберите:', {
keyboard: JSON.stringify(keyboard)
});
// Сообщение с каруселью
const template = {
type: 'carousel',
elements: [{
title: 'Заголовок',
description: 'Описание',
photo_id: '-123456_789',
buttons: [{
action: {
type: 'text',
label: 'Кнопка',
payload: '{"button": 1}'
}
}]
}]
};
await vk.messagesSend(12345, '', {
template: JSON.stringify(template)
});
Получает URL для загрузки фотографий в сообщения
ID получателя сообщения
Данные для загрузки или null при ошибке
Сохраняет загруженную фотографию в сообщениях
Идентификатор фотографии
Идентификатор сервера
Хэш-сумма фотографии
Информация о сохраненной фотографии или null при ошибке
Подтверждение получения callback-события от кнопки. Обязательный метод для обработки message_event в VK Bot API. Без этого вызова VK показывает пользователю "Бот недоступен" при нажатии callback-кнопки.
ID пользователя
ID события из message_event
OptionaleventData: {Данные события (опционально): show_snackbar, open_link или open_modal
OptionalpeerId: TVkPeerIdID диалога из message_event. Для обратной совместимости используется userId
Результат выполнения или null при ошибке
Загружает файл на сервера ВКонтакте
URL для загрузки файла
Путь к файлу или его содержимое
Имя multipart-поля с файлом. Сервер загрузки фото
(photos.getMessagesUploadServer) принимает файл только в поле photo —
с полем file он возвращает пустой photo: "[]", и сохранение фото падает.
Документы и голосовые (docs.getMessagesUploadServer) ждут поле file
(значение по умолчанию).
Информация о загруженном файле или null при ошибке
Для фотографий возвращает:
Для документов возвращает:
// Загрузка фото.
// Поля photo/server/hash у IVkUploadFile опциональны —
// перед вызовом photosSaveMessagesPhoto проверяем их наличие
const server = await vk.photosGetMessagesUploadServer(12345);
if (server) {
const upload = await vk.upload(server.upload_url, 'photo.jpg', 'photo');
if (upload?.photo && upload?.server && upload?.hash) {
const photo = await vk.photosSaveMessagesPhoto(
upload.photo,
upload.server,
upload.hash
); // IVkPhotosSave[] — берём первый элемент
}
}
// Загрузка документа
const server = await vk.docsGetMessagesUploadServer(12345, 'doc');
if (server) {
const upload = await vk.upload(server.upload_url, 'document.pdf');
if (upload) {
const doc = await vk.docsSave(
upload.file,
'Документ',
'тег1,тег2'
);
}
}
Получает информацию о пользователе или списке пользователей
ID пользователя, список ID через запятую или массив ID
Дополнительные параметры запроса
Массив пользователей или null при ошибке
Класс для взаимодействия с API голосового помощника Маруся Расширяет функционал VkRequest для работы со специфичными методами Маруси
See
https://dev.vk.ru/ru/marusia/api
Example