Ошибка при загрузки документа на сервера Вк
Пишу программу, которая конвертирует фотки из вк в один pdf. Я добился этой цели, но теперь нужно, чтобы этот pdf отправлялся пользователю. Для этого вк просит, чтобы документ был загружен на сервера(подробнее тут https://vk.com/dev/upload_files_2?f=10.%20Загрузка%20документов). Следуя шагам из документации, я пытаюсь отправить POST-запрос и получить ответ
filename = 'C:\\Users\\79859\\OneDrive\\Рабочий стол\\Photo_vk\\' + name + '.pdf'
upload_url = vk.docs.getMessagesUploadServer(peer_id=id_moy, type='doc')['upload_url']
request = requests.post(upload_url, files={'doc': open(filename, "rb")})
Данный код выдает такую ошибку: '{"error":"no_file","error_descr":"no_file"}'
Я проверил права доступа(все разрешено) и пробовал загрузить на сервер обычную jpg фотку, используя схожий метод photos.getWallUploadServer. И ошибки не было! То есть фотография была успешно загружена
Никак не могу понять с чем связана эта ошибка при загрузке на сервера. Помогите, пожалуйста
Ответы (3 шт):
Проблема решилась, но не тем способом, который я указал выше. Использовал в итоге метод document_message (вот ссылка https://vk-api.readthedocs.io/en/latest/upload.html)
Мой пример:
elif file.endswith('.gif'):
id_doc = vk_api.upload.VkUpload(self.vk).document_wall(path, group_id=self.group_id)['doc']['id']
if title and id_doc:
self.vk.wall.post(owner_id=f'-{self.group_id}', message=title,
attachments=f'doc-{self.group_id}_{id_doc}')
У тебя бага, нужно использовать file
print(requests.post(url, files={'file': open("123.gif", "rb")}).json())