Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 17, 2022 12:43:33

Denny_Colt
Зарегистрирован: 2017-07-19
Сообщения: 12
Репутация: +  0  -
Профиль   Отправить e-mail  

Как загрузить несколько изображений в группу ВК с описанием?

Здравствуйте, возможно кто нибудь знает как загрузить несколько изображений в пост ВК и добавить к ним уникальное описание (поле 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()

Офлайн

#2 Окт. 17, 2022 13:48:26

ZerG
Зарегистрирован: 2012-04-05
Сообщения: 2627
Репутация: +  61  -
Профиль   Отправить e-mail  

Как загрузить несколько изображений в группу ВК с описанием?

В цикле попробуйте
Код ниже не факт что рабочий но идею из него почерпнуть легко

 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')



Влодение рускай арфаграфией - это как владение кунг-фу: настаящие мастира не преминяют ево бес ниабхадимости

Офлайн

#3 Окт. 22, 2022 14:05:18

Denny_Colt
Зарегистрирован: 2017-07-19
Сообщения: 12
Репутация: +  0  -
Профиль   Отправить e-mail  

Как загрузить несколько изображений в группу ВК с описанием?

ZerG
В цикле попробуйте Код ниже не факт что рабочий но идею из него почерпнуть легко
Огромное спасибо ) Обязательно проверю. Да, уже понял что нужно это обернуть в цикл, просто мои знания в программировании еще сыроваты. Я тоже нашел рабочее решение, но оно громоздкое без цикла.

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version