@icebeat

В чем ошибка в коде?

Прочитал в документации как загрузить фото. Код выполняется и получаю в конце ID фото, но фото не появляется в группе.

Написал свой код:
import requests

# настройки
vk_access_token = "" # токен пользователя
vk_owner_id = "-216030494" # ID группы, куда постим
vk_owner_id_img = "216030494" # ID нужной группы (положительный) для загрузки фото согласно документации
vk_friends_only = "0" # 0 - значит что запись доступна всем пользователям
vk_from_group = "1" # 1 — запись будет опубликована от имени группы
vk_version = "5.131"

# Получение адреса
result = requests.get(f'https://api.vk.com/method/photos.getWallUploadServer?access_token={vk_access_token}&group_id={vk_owner_id_img}&v={vk_version}').json()
upload_url = result['response']['upload_url']

# Передача файла
upload_file = requests.post(upload_url, files={'photo': open('img.jpg', 'rb')}).json() # картинка лежит в том же каталоге, где и программа
save_photo = upload_file['photo']
save_hash = upload_file['hash']
save_server = upload_file['server']

# Сохранение результата
save_file = requests.get(f'https://api.vk.com/method/photos.saveWallPhoto?access_token={vk_access_token}&group_id={vk_owner_id_img}&photo={save_photo}&server={save_server}&hash={save_hash}&v={vk_version}').json()
photo_id = save_file['response'][0]['id']
photo_adress = f'photo{vk_owner_id}_{photo_id}'

# Публикация фотографии
requests.get(f'http://api.vk.com/method/wall.post?access_token={vk_access_token}&owner_id={vk_owner_id}&friends_only={vk_friends_only}&from_group={vk_from_group}&v={vk_version}&&attachments={photo_adress}')


Если посмотреть значение переменной через print(photo_adress), то получим photo-216030494_457240054, но такого файла нет. ВК показывает пустую страницу с надписью: Ошибка доступа

Доступ получал через:
https://oauth.vk.com/authorize?client_id={CLIENT_ID}&display=page&redirect_uri=https://oauth.vk.com/blank.html&scope=friends,notify,photos,wall,email,mail,groups,stats,offline&response_type=token&v=5.131


Как видите, в scope указано - photos. Доступ предоставлен.

Помогите разобраться, где допустил ошибку.
  • Вопрос задан
  • 106 просмотров
Пригласить эксперта
Ответы на вопрос 1
@defriz
люблю js
3 параметр к вложению добавьте, access_token.
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы