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

    @Denny_Colt Автор вопроса
    Пока набросок, но я решил так, нужно просто сконструировать ссылку
    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, ')
    
    
    def save_r2():
         save_result = requests.get('https://api.vk.com/method/photos.saveWallPhoto?', params={'access_token': token,
                                                 'group_id': group_id,
                                                 'caption': h,
                                                 'photo': upload_response2['photo'],
                                                 'server': upload_response2['server'],
                                                 'hash': upload_response2['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') }
      file2 = {'file1': open('1234.jpg', 'rb')}
      global upload_response
      global upload_response2
      upload_response = requests.post(upload_url, files=file).json()
      upload_response2 = requests.post(upload_url, files=file2).json()
      save_result = save_r()
      save_result2 = save_r2()
      print(save_result)
      print(save_result2)
      save_result = (save_result + save_result2)
      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()
    Ответ написан
    Комментировать
  • Как решить проблему с кодировкой json?

    @Denny_Colt Автор вопроса
    Вот write_json(ur, 'upload_photos.json')
    {'server': 851528, 'hash': 'b3554f765046ea953770b086c4933591', 'photo': '[{"photo":"9417470c10:y","sizes":[["s",851528549,"277a4","QGBBUoggHus",75,75],["m",851528549,"277a5","ccPM20uu5SI",130,130],["x",851528549,"277a6","Atgyr1ffh7k",604,604],["y",851528549,"277a7","gcTwHy2uq1A",640,640],["o",851528549,"277a8","WBFHAIXAy1Q",130,130],["p",851528549,"277a9","i1hTby6vm7g",200,200],["q",851528549,"277aa","PRcC9nyHPbw",320,320],["r",851528549,"277ab","Bv8SoTa_aY8",510,510]],"latitude":0,"longitude":0,"kid":"85ac62253332d3f395f4ffed5865ae65"}]'} <class 'dict'>


    print(photo_saved, type(photo_saved))
    {'response': [{'date': 1539877080, 'id': 456250404, 'album_id': -14, 'photo_75': 'https://pp.userapi.com/c848524/v848524585/9a92c/WMhPskInMWk.jpg', 'owner_id': 313430117, 'height': 2160, 'access_key': '25f86ae943854c6a2e', 'photo_130': 'https://pp.userapi.com/c848524/v848524585/9a92d/qVm36vN21QA.jpg', 'photo_807': 'https://pp.userapi.com/c848524/v848524585/9a92f/8AnJgcEbmqQ.jpg', 'width': 1728, 'photo_2560': 'https://pp.userapi.com/c848524/v848524585/9a931/WdFBRUG8SOA.jpg', 'photo_1280': 'https://pp.userapi.com/c848524/v848524585/9a930/Qit4ZJFKdRY.jpg', 'photo_604': 'https://pp.userapi.com/c848524/v848524585/9a92e/k-dG0C3ZTfc.jpg', 'text': 'Не следует, однако забывать, что постоянное информационно пропагандистское обеспечение нашей деятельности влечет за собой процесс внедрения и модернизации системы обучения кадров, соответствует насущным потребностям. Таким образом рамки и место обучения кадров требуют от нас анализа модели развития. Не следует, однако забывать, что начало повседневной работы по формированию позиции влечет за собой процесс внедрения и модернизации позиций, занимаемых участниками в отношении поставленных задач. Не'}]} <class 'dict'>
    Ответ написан
    Комментировать