Coder Social home page Coder Social logo

py-vkontakte's Introduction

py-vkontakte — Python client for API vk.com

Build codecov Total alerts
Package GitHub release Solid Solid

Table of contents

Install

pip install py-vkontakte

First start

>>> import vk
>>> api = vk.Api('YOUR_TOKEN')

Method

User

# Single user
>>> user = api.get_user('durov')

# Many user
>>> user_items = api.get_users([1, 'sgaynetdinov'])  # Return generator
>>> [user.id for user in user_items]
[1, 23768217]

# User object
>>> user.id  # 1
>>> user.first_name  # 'Павел'
>>> user.last_name  # 'Дуров'
>>> user.maiden_name  # None
>>> user.nickname  # ''
>>> user.bdate  # '10.10.1984'
>>> user.sex  # 'male'
>>> user.status  # '道德經'
>>> user.site  # 'http://t.me/durov'
>>> user.relation  # None
>>> user.relation_partner  # None
>>> user.facebook  # '501012028'
>>> user.skype  # None
>>> user.twitter  # 'durov'
>>> user.livejournal  # None
>>> user.instagram  # 'durov'
>>> user.is_verified  # True
>>> user.is_trending  # False
>>> user.domain  # 'durov'
>>> user.screen_name  # 'durov'
>>> user.last_seen  # datetime.datetime
>>> user.platform  # 'web (vk.com)'
>>> user.is_deactivated  # False
>>> user.is_deleted  # False
>>> user.is_banned  # False
>>> user.can_write_private_message  # False
>>> user.is_friend  # False

>>> user.get_about()
>>> user.get_activities()
>>> user.get_books()
>>> user.get_career()
>>> user.get_games()
>>> user.get_movies()
>>> user.get_music()
>>> user.get_quotes()
>>> user.get_tv()

UserCareer

# Get user career data
>>> career = user.get_career()

# Career object
>>> career[0].group
>>> career[0].company
>>> career[0].country
>>> career[0].city
>>> career[0].city_name
>>> career[0].start
>>> career[0].end
>>> career[0].position

Group

# Single group
>>> group = api.get_group('devclub')

# Checking a user is a member of a current group
>>> user = api.get_user('durov')
>>> user in group  # or user.id in group

>>> user_items = [user for user in group.get_members()] # Get group members
>>> user_id_items = [user_id for user_id in group.get_members_only_id()] # Get only group members ID

# Many group
>>> groups_items = api.get_groups([1, 'devclub'])  # Return generator
>>> [group for group in groups_items]
[<Group: apiclub>, <Group: devclub>]

Examples

>>> import vk
>>> api = vk.Api('YOUR_TOKEN')
>>> group = api.get_group('devclub')
>>> user_id_items = []
>>> for user in group.get_members():
...     if user.is_friend and user.is_online:
...     	user_id_items.append(user.id)

Run tests

pip install -r requirements-dev.txt
pytest

Publish new release in PyPI

  • Edit field version in file setup.py
  • Create new release from github.com

py-vkontakte's People

Contributors

jaroslucky avatar nafanz avatar sgaynetdinov avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

py-vkontakte's Issues

С токеном пользователя отправка сообщений не работает

Да, я тоже думал про раздел Examples. Но туда бы добавить несколько хороших примеров, а не только эти три строчки. Поможешь?

Я пока решил свою задачу на коленках. Пришлось еще использовать библиотеку vk_messages habr. Так как у тебя с токеном пользователя отправка сообщений не работает из-за ограничений ВК как я понял.

import time
from vk_messages import MessagesAPI
from vk_messages.utils import get_random
import vk

login, password = 'Х', 'Х'
messages = MessagesAPI(login=login, password=password, cookies_save_path='')

api = vk.Api('Х')

pm = messages.method('messages.getConversations', count=200)
pm = pm['items']

ignore = []

for item in pm:
    ignore.append(item['conversation']['peer']['id'])

ignore = set(ignore)

group = api.get_group('Х')
user_items = [user for user in group.get_members()]

nickname = []

for item in user_items:
    if item.can_write_private_message is True and item.is_friend is False:
        nickname.append(item.id)

nickname = set(nickname)
nickname = nickname.difference(ignore)

for item in nickname:
    time.sleep(3)
    messages.method(
        'messages.send',
        user_id=item,
        message='Х',
        random_id=get_random()
    )
    print(item, 'send')

Кстати, с радостью выслушаю советы по коду, так как не являюсь разработчиком.

Originally posted by @nafanz in #33

Add tests for User

  • get_career

  • get_city

  • get_country

  • get_followers

  • get_followers_count

  • get_friends

  • get_friends_count

  • get_military

  • get_occupation

  • is_online

  • get_personal

  • get_photos

  • get_relatives

  • get_schools

  • get_universities

  • get_walls

  • get_wall

  • get_walls_count

  • get_groups

'module' object has no attribute 'get_friends'

Try to get friend list via:
vk.get_friends('341988443')
Result: Traceback (most recent call last):
File "<pyshell#16>", line 1, in
vk.get_friends('341988443')
AttributeError: 'module' object has no attribute 'get_friends'
It is my mistake or trouble?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.