Как исправить error code 1 vk_api?

Доброго времени суток , пытаюсь выложить большой объем картинок на страницу через вк апи , делаю все с помощью этого кода:
import vk
import sys

session = vk.Session(access_token ="")
vk_a = vk.API(session , v= '5.92', lang = 'ru')


    # Список с ссылками на картинки
hrefs = [
    r'C:\Users\Никита\Pictures\4K Stogram\dariarebeshchenko\1970-01-01 03.00.00 .jpg',
]

for href in hrefs:
    vk_a.wall.post(attachments = hrefs , message = '1' , owner_id = '')


В ответ получаю ошибку 1
Traceback (most recent call last):
  File "main.py", line 14, in <module>
    vk_a.wall.post(attachments = hrefs , message = '1' , owner_id = '')
  File "C:\Users\Никита\AppData\Local\Programs\Python\Python36\lib\site-packages\vk\api.py", line 173, in __call__
    return self._api._session.make_request(self)
  File "C:\Users\Никита\AppData\Local\Programs\Python\Python36\lib\site-packages\vk\api.py", line 102, in make_request
    raise error
vk.exceptions.VkAPIError: 1. Unknown error occurred. request_params = {'method': 'wall.post', 'oauth': '1', 'v': '5.92', 'lang': 'ru', 'attachments': 'C:\\Users\\Никита\\Pictures\\4K Stogram\\dariarebeshchenko\\1970-01-01 03.00.00 .jpg', 'message': '1', 'owner_id': ''}

Нашел , что означает ошибка. Дельного сам вк ничего не пишет на счет ошибки
6235a0e365a41745373405.png

Заранее спасибо
  • Вопрос задан
  • 146 просмотров
Пригласить эксперта
Ответы на вопрос 1
SoreMix
@SoreMix Куратор тега Python
yellow
Абсолютно неверный метод отправки изображений.

1. wall.post принимает в поле attachments строки вида <type><owner_id>_<media_id>, но никак не путь до файла на пк
https://dev.vk.com/method/wall.post
2. Сначала изображения нужно загрузить на сервера ВК. Либо смотреть примеры по библиотеке, вдруг там свои методы загрузки есть, но в общем случае это делается так:
  1. Получаем адрес сервера для загрузки с помощью метода photos.getWallUploadServer
  2. ВК вернет upload_url, на который нужно будет отправить изображение типа multipart/form-data POST методом, опять же, если библиотека имеет свои методы отправки - отправлять через нее, если нет - то какой нибудь requests
  3. После успешной загрузки ВК вернет server,hash,photo
  4. Затем вызывается метод photos.saveWallPhoto куда в соответствующие поля передаются данные из пункта выше
  5. В случае успеха ВК вернет объект фотографии, из которой нужны owner_id и media_id
  6. Берем их и делаем vk_a.wall.post(attachments = 'photoOWNERID_MEDIAID' , message = '1' , owner_id = '')
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы