Как по 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 там уже должны быть фотки. Что я не так делаю или не понимаю? Объясните пожалуйста. Сил уже нету!