Найти - Пользователи
Полная версия: Как загрузить несколько изображений в группу ВК с описанием?
Начало » Python для новичков » Как загрузить несколько изображений в группу ВК с описанием?
1
Denny_Colt
Здравствуйте, возможно кто нибудь знает как загрузить несколько изображений в пост ВК и добавить к ним уникальное описание (поле caption)?
На данный момент скрипт отправляет только одно изображение.
 import requests
import json
token = "token"
group_id = 1
h ='тест'
text = 'магия!!!'
def getWallUploadServer():
  r = requests.get('https://api.vk.com/method/photos.getWallUploadServer?', params = {'access_token':token,
                                      'group_id':group_id,
                                      'v':'5.101'}).json()
  return r['response']['upload_url']
def save_r():
      save_result = requests.get('https://api.vk.com/method/photos.saveWallPhoto?', params ={'access_token':token,
                                            'group_id':group_id,
                                            'caption': h,
                                            'photo':upload_response['photo'],
                                            'server':upload_response['server'],
                                            'hash':upload_response['hash'],
                                            'v':'5.101'}).json()
      return ('photo'+str(save_result['response'][0]['owner_id'])+'_'+str(save_result['response'][0]['id'])+'&access_key='+str(save_result['response'][0]['access_key']))
def main():
  upload_url = getWallUploadServer()
  file = {'file1': open('123.jpg', 'rb') }
  global upload_response
  upload_response = requests.post(upload_url, files=file).json()
  save_result = save_r()
  result2 = requests.get('https://api.vk.com/method/wall.post?', params ={'attachments':save_result,
                                      'owner_id':-group_id,
                                      'message': text,
                                      'access_token':token,
                                      'from_group': '1',
                                      'v':'5.101'}).json()
if __name__ == '__main__':
    main()
ZerG
В цикле попробуйте
Код ниже не факт что рабочий но идею из него почерпнуть легко

 import requests
import json
import re
token = '!!!!!с photos привелегией!!!!!!'
version = '5.95'
group = 'id группы'
alb = 'id альбома'
img = 'путь до папки с картинками'
adres = ''  #оставлять пустым
img_url = '' #оставлять пустым
chek = int(0)
f = open('filelist.txt')   # filelists.txt <- файл с названием.расширением фото(построчно) 
line = f.readline().rstrip('\r\n')
while line:
    adres = img + line
    print(chek)
    chek += int(1)
    def get_url():
        r = requests.get('https://api.vk.com/method/photos.getUploadServer',
                         params={
                             'access_token': token,
                             'album_id': alb,
                             'group_id': group,
                             'v': version
                         }).json()
        return r['response']['upload_url']
    url = get_url()
    file = {'file1': open(adres, 'rb')}
    ur = requests.post(url, files=file).json()
    result = requests.get('https://api.vk.com/method/photos.save',
                          params={
                              'access_token': token,
                              'album_id': ur['aid'],
                              'group_id': ur['gid'],
                              'server': ur['server'],
                              'photos_list': ur['photos_list'],
                              'hash': ur['hash'],
                              'v': version,
                          }).json()
    open(adres).close
    line = f.readline().rstrip('\r\n')
f.close()
print ('finish')
Denny_Colt
ZerG
В цикле попробуйте Код ниже не факт что рабочий но идею из него почерпнуть легко
Огромное спасибо ) Обязательно проверю. Да, уже понял что нужно это обернуть в цикл, просто мои знания в программировании еще сыроваты. Я тоже нашел рабочее решение, но оно громоздкое без цикла.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB