Загрузка изображений для товаров через API vk.com
пытаюсь загрузить фото для товара согласно инструкции
получаю ссылку:
String uploadUrl = vk.photos()
.getMarketUploadServer(userActor, vkConfig.getGroupId())
.mainPhoto(isMain)
.execute()
.getUploadUrl().toString();
загружаю фото на сервер:
String uploadResultStr = Request.post(uploadUrl)
.body(MultipartEntityBuilder.create()
.addBinaryBody("file", convertedImageBytes, ContentType.DEFAULT_BINARY, "file.jpg")
.build())
.execute().returnContent().asString();
PhotoUploadResult uploadRes = objectMapper.readValue(uploadResultStr, PhotoUploadResult.class);
сохраняю фото:
PhotosSaveMarketPhotoQuery savePhotoQuery = vk.photos().saveMarketPhoto(
userActor,
uploadRes.getPhoto(),
uploadRes.getServer(),
uploadRes.getHash()
);
if (isMain) {
savePhotoQuery.cropHash(uploadRes.getCropHash());
savePhotoQuery.cropData(uploadRes.getCropData());
}
savePhotoQuery.execute(); // ApiAccessException: Access denied (15): Access denied
Получаю ошибку ApiAccessException: Access denied (15): Access denied.
Токен получаю "пользовательский", оба метода, судя по доке, имеют одинаковый набор необходимых прав: https://vk.com/dev/photos.getMarketUploadServer https://vk.com/dev/photos.saveMarketPhoto Но первый отрабатывает, а на втором ошибка. Помогите пожалуйста понять в чём дело.
Ответы (1 шт):
Автор решения: dsgr
→ Ссылка
Решение было найдено в обсуждении https://vk.com/topic-104669514_32932591?post=630
К списку параметров метода vk.photos().saveMarketPhoto к основной фотке необходимо добавить "group_id".