Как по api загрузить фотку в ВК?

Бьюсь уж пару дней на задачей. Надо скачанные фотки загрузить в группу вк по API. Получаю адрес сервера для загрузки, а вот что кодить дальше? Вот код, специально оставляю отключенные строки, что бы было понятно - дофига чего пробовал:

import vk_api
from pprint import pprint
    
response = requests.get('https://www.globaltimes.cn/page/202301/1284233.shtml')
soup = bs(response.text, 'lxml')
picture = soup.findAll('center')
if len(picture) > 0:
    photos_db = []
    for i in range(1, len(picture)):
        pic_in = str(picture[i])
        link_to_pic_in = pic_in[pic_in.find('src="') + 5: pic_in.rfind('" style=')]
        opened_link_to_pic_in = requests.get(link_to_pic_in)
        with open(f'file{i}.jpeg', 'wb') as pic:
            pic.write(opened_link_to_pic_in.content)
        photos_db.append(f'file{i}.jpeg')

        a = requests.get(
            f'https://api.vk.com/method/photos.getUploadServer', params={'group_id': GROUP_ID,
                                                                         'album_id': ALBUM_ID,
                                                                         'access_token': ТОКЕН,
                                                                         'v': 5.131})
        a = json.loads(a.text)
        #pprint(a)
        # requests.post(a['response']['upload_url'])
        # print(requests.post(a['response']['upload_url']))
        a = a['response']['upload_url']
        y = requests.post(url=a + '&photo', headers={'Content-Type': 'Multipart/form-data'}, params={"photos_list": photos_db})
        print(a)
        pprint(json.loads(y.text))

        #pprint(json.loads(y.text))

        # z = requests.get(f'https://api.vk.com/method/photos.save', params={'server': y['server'],
        #                                                                    'photos_list': photos_db,
        #                                                                    'aid': y['aid'],
        #                                                                    'hash': y['hash'],
        #                                                                    'access_token': ТОКЕН,
        #                                                                    'v': '5.131',
        #                                                                    'album_id': ALBUM_ID})
        #print(z.text, '000000000000')

        # requests.get(a.url, photos_db)

    # requests.get(a.url(photos_db))

В итоге обратил внимание что что прив выполнении pprint(json.loads(y.text))я получаю

{'aid': 287692553,
 'gid': 216843472,
 'hash': '2fae7943ca9c06d09d2d47bb71e33b81',
 'photos_list': '[]',
 'server': 537132}

с пустым photos_list. Хотя по документации VK API там уже должны быть фотки. Что я не так делаю или не понимаю? Объясните пожалуйста. Сил уже нету!


Ответы (0 шт):