@ihateyourcode

Не удаётся загрузить фото через wall.post VkApi. В чём проблема?

Вся суть в принципе сформулирована в вопросе. Просто не отправляет фото. Не понимаю в чем проблема. Если есть знающие люди, объясните пожалуйста.
Код:
# путь к изображению
    img = {'photo': ('123.jpg', open(r'123.jpg', 'rb'))}

    # Получаем ссылку для загрузки изображений
    method_url = 'https://api.vk.com/method/photos.getWallUploadServer?'
    data = dict(access_token=token, gid= gid, v = '5.131')
    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'], v = '5.131')
    response = requests.post(method_url, data)
    result = json.loads(response.text)['response'][0]['id']
    print(result)
    print()

    # Теперь этот id остается лишь прикрепить в attachments метода wall.post
    method_url = 'https://api.vk.com/method/wall.post?'
    data = dict(access_token=token, owner_id= owner_id, photo = result, message = 'Hello', from_group = 1, v = '5.131')
    response = requests.post(method_url, data)
    result = json.loads(response.text)
  • Вопрос задан
  • 202 просмотра
Пригласить эксперта
Ответы на вопрос 1
SoreMix
@SoreMix Куратор тега Python
yellow
1. owner_id точно правильный?
2. wall.post не принимает "photo"
3. Сами пишете
остается лишь прикрепить в attachments метода wall.post
при этом где у вас параметр attachments?
Плюс формат вложений это не просто id, а
<type><owner_id>_<media_id>
Так что он будет примерно как f'photo{owner_id}_result'

https://dev.vk.com/method/wall.post
Ответ написан
Ваш ответ на вопрос

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

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