Ответы пользователя по тегу Изображения
  • Как загрузить изображение на стену в VK через VK API на Python?

    Есть подробная инструкция на сайте ВК

    Для данной операции вам необходимо получить токен для вашего приложения.
    Можно использовать vk_auth
    Для отправления запросов можно использовать библиотеку requests

    import requests
    import json
    import vk_auth
    
    # Ваши данные ВК
    email = ''
    password = ''
    client_id = ''
    # Необходимые нам права
    scope = 'wall,photos'
    # Идентификаторы группы
    gid = ''
    
    token = vk_auth(email, password, client_id, scope)[0]
    
    # путь к вашему изображению
    img = {'photo': ('img.jpg', open(r'img.jpg', 'rb'))}
    
    # Получаем ссылку для загрузки изображений
    method_url = 'https://api.vk.com/method/photos.getWallUploadServer?'
    data = dict(access_token=token, gid=gid)
    response = requests.post(method_url, data)
    result = json.loads(response.text)
    upload_url = result['response']['upload_url']
    
    # Загружаем изображение на url
    response = requests.post(upload_url, files=img)
    result = json.loads(response.text)
    
    # Сохраняем фото на сервере и получаем id
    method_url = 'https://api.vk.com/method/photos.saveWallPhoto?'
    data = dict(access_token=token, gid=gid, photo=result['photo'], hash=result['hash'], server=result['server'])
    response = requests.post(method_url, data)
    result = json.loads(response.text)['response'][0]['id']
    
    # Теперь этот id остается лишь прикрепить в attachments метода wall.post
    method_url = 'https://api.vk.com/method/wall.post?'
    data = dict(access_token=token, owner_id='-' + gid, attachments=result, message='')
    response = requests.post(method_url, data)
    result = json.loads(response.text)
    
    # На выходе мы получим в ответе post_id если не было ошибки
    Ответ написан
    5 комментариев