django-vkontakte-board

Django implementation for vkontakte API Board


License
BSD-3-Clause
Install
pip install django-vkontakte-board==0.7.1

Documentation

Django Vkontakte Board

PyPI version Build Status Coverage Status

Приложение позволяет взаимодействовать с дисскуссиями групп через Вконтакте API используя стандартные модели Django

Установка

pip install django-vkontakte-board

В settings.py необходимо добавить:

INSTALLED_APPS = (
    ...
    'oauth_tokens',
    'taggit',
    'vkontakte_api',
    'vkontakte_places,
    'vkontakte_groups',
    'vkontakte_users',
    'vkontakte_board',
)

# oauth-tokens settings
OAUTH_TOKENS_HISTORY = True                                         # to keep in DB expired access tokens
OAUTH_TOKENS_VKONTAKTE_CLIENT_ID = ''                               # application ID
OAUTH_TOKENS_VKONTAKTE_CLIENT_SECRET = ''                           # application secret key
OAUTH_TOKENS_VKONTAKTE_SCOPE = ['ads,wall,photos,friends,stats']    # application scopes
OAUTH_TOKENS_VKONTAKTE_USERNAME = ''                                # user login
OAUTH_TOKENS_VKONTAKTE_PASSWORD = ''                                # user password
OAUTH_TOKENS_VKONTAKTE_PHONE_END = ''                               # last 4 digits of user mobile phone

Покрытие методов API

  • board.getTopics – возвращает список тем в обсуждениях указанной группы;
  • board.getComments – возвращает список сообщений в указанной теме;

Примеры использования

Получение дискуссий группы через метод группы

>>> from vkontakte_groups.models import Group
>>> group = Group.remote.fetch(ids=[16297716])[0]
>>> group.fetch_topics()
[<Topic: ЭСТАФЕТА ОЛИМПИЙСКОГО ОГНЯ ► задаем вопросы в этой теме>,
 <Topic: ПРОМО-АКЦИЯ "ВСТРЕЧАЙ НОВЫЙ ГОД С ПРИЗАМИ! СОБЕРИ ТЁПЛУЮ КОМПАНИЮ МИШЕК!" ► вопросы и обсуждение>,
 '...(remaining elements truncated)...']

Дискуссии группы доступны через менеджер

>>> group.topics.count()
12

Получение дискуссий группы через менеджер

>>> from vkontakte_board.models import Topic
>>> Topic.remote.fetch(group=group, all=True)
[<Topic: ЭСТАФЕТА ОЛИМПИЙСКОГО ОГНЯ ► задаем вопросы в этой теме>,
 <Topic: ПРОМО-АКЦИЯ "ВСТРЕЧАЙ НОВЫЙ ГОД С ПРИЗАМИ! СОБЕРИ ТЁПЛУЮ КОМПАНИЮ МИШЕК!" ► вопросы и обсуждение>,
 '...(remaining elements truncated)...']

Получение комментариев дискуссии через метод дискуссии

>>> from vkontakte_groups.models import Group
>>> from vkontakte_board.models import Topic
>>> group = Group.remote.fetch(ids=[16297716])[0]
>>> topic = Topic.remote.fetch(group=group, ids=[26523718])[0]
>>> topic.fetch_comments()
[<Comment: Comment object>,
 <Comment: Comment object>,
 '...(remaining elements truncated)...']

Комментарии дискуссии доступны через менеджер

>>> topic[0].comments.count()
39

Получение комментариев дискуссии через менеджер

>>> from vkontakte_groups.models import Group
>>> from vkontakte_board.models import Topic, Comment
>>> group = Group.remote.fetch(ids=[16297716])[0]
>>> topic = Topic.remote.fetch(group=group, ids=[26523718])[0]
>>> Comment.remote.fetch(topic=topic)
[<Comment: Comment object>,
 <Comment: Comment object>,
 '...(remaining elements truncated)...']