Работаем с VK API на Python

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by extjs, 31 Jul 2014.

  1. extjs

    extjs Member

    Joined:
    23 Jun 2013
    Messages:
    31
    Likes Received:
    6
    Reputations:
    0
    Мой проект на гитхабе . Лень все рассписывать, да и разбираться особо не в чем.

    Пример массовой загрузки фотографий в альбом.

    PHP:
    # -*- coding: u8 -*-
    from account import *
    from vklib import *

    vk = VKClient(delay_time=.5)
    vk.login(username, password)
    album_id = 199678084
    f 
    = open('grabbers/camwhores.txt')
    L = f.read().splitlines()
    f.close()
    L = L[::-1] # перевернули
    vk.upload_photos(L, album_id)
    В файле grabbers/camwhores.txt ссылки на фотки. Можно загружать как с диска так по http.

    А это загруженные фотки в альбоме.
     
    #1 extjs, 31 Jul 2014
    Last edited: 22 Dec 2014
  2. extjs

    extjs Member

    Joined:
    23 Jun 2013
    Messages:
    31
    Likes Received:
    6
    Reputations:
    0
    Еще пример рассылка друзьям онлайн.

    PHP:
    # -*- coding: u8 -*-
    from account import *
    from vklib import *
    import utils
    import re

    message_tpl 
    = u'{Доброе утро|Здоров|Прив{|ет}}, %first_name%. {Что делаешь|Почему не спишь|Как жизнь}?'

    vk = VKClient(delay_time=.5)
    vk.login(username, password)

    # не знаю сколько максимум может вернуть
    user_ids = vk.api('friends.getOnline', order='rand')
    # тут тоже по идеи offset/count
    users = vk.api('users.get', user_ids=utils.implode(',', user_ids), fields='can_write_private_message')

    for 
    user in users:
        if 
    user['can_write_private_message']:
            
    msg = utils.randtext(message_tpl)
            
    msg = re.sub('%(.+?)%', lambda m: user[ m.group(1) ] if m.group(1) in user else '', msg) #, flags=re.UNICODE)
            
    print vk.api('messages.send', message=msg, user_id=user['id'])
     
  3. extjs

    extjs Member

    Joined:
    23 Jun 2013
    Messages:
    31
    Likes Received:
    6
    Reputations:
    0
    Непрошло и года как я переписал свой быдлокод. Приделал примитивный графический интерфейс(диалог авторизации и дмалог ввода капчи). Теперь к методам api можно обращаться как к методам VkClient:

    vk.users.get(user_id=1)
    vk.wall.post(message="Текст сообщения")

    и т.д.
     
    1 person likes this.