Skip to main content

Django implementation for vkontakte API Wall

Project description

# Django Vkontakte Wall

[![Build Status](https://travis-ci.org/ramusus/django-vkontakte-wall.png?branch=master)](https://travis-ci.org/ramusus/django-vkontakte-wall) [![Coverage Status](https://coveralls.io/repos/ramusus/django-vkontakte-wall/badge.png?branch=master)](https://coveralls.io/r/ramusus/django-vkontakte-wall)

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

## Установка

pip install django-vkontakte-wall

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

INSTALLED_APPS = (
...
'oauth_tokens',
'vkontakte_api',
'vkontakte_users',
'vkontakte_wall',
)

# 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

* [wall.get](http://vk.com/developers.php?oid=-1&p=wall.get) – возвращает список записей со стены;
* [wall.getComments](http://vk.com/developers.php?oid=-1&p=wall.getComments) – получает комментарии к записи на стене пользователя;

В планах:

* [wall.getById](http://vk.com/developers.php?oid=-1&p=wall.getById) – получает записи со стен пользователей по их идентификаторам.
* [wall.post](http://vk.com/developers.php?oid=-1&p=wall.post) – добавляет запись на стену.
* [wall.getLikes](http://vk.com/developers.php?oid=-1&p=wall.getLikes) – Получает информацию о пользователях которым нравится данная запись.

## Использование парсера

* Получение сообщений со стены группы. *
* Получение комментариев сообщения со стены группы. *
* Получение лайков сообщения. *
* Получение перепостов сообщения.

(*) До недавнего момента это было невозможно сделать через API.

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

### Получение сообщений со стены пользователя через метод пользователя

>>> from vkontakte_users.models import User
>>> user = User.remote.fetch(ids=[1])[0]
>>> user.fetch_posts()
[<Post: ...>, <Post: ...>, <Post: ...>, '...(remaining elements truncated)...']

Сообщения пользователя доступны через менеджер

>>> user.wall_posts.count()
432

Комментарии всех сообщений пользователя доступны через менеджер

>>> user.wall_comments.count()
73637

### Получение сообщений со стены пользователя через менеджер

>>> from vkontakte_users.models import User
>>> user = User.remote.fetch(ids=[1])[0]
>>> Post.remote.fetch_user_wall(user=user)
[<Post: ...>, <Post: ...>, <Post: ...>, '...(remaining elements truncated)...']

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

>>> from vkontakte_groups.models import Group
>>> group = Group.remote.fetch(ids=[16297716])[0]
>>> group.fetch_posts()
[<Post: Coca-Cola: ...>, <Post: Coca-Cola: ...>, '...(remaining elements truncated)...']

Сообщения группы доступны через менеджер

>>> group.wall_posts.count()
5498

Комментарии всех сообщений группы доступны через менеджер

>>> group.wall_comments.count()
73637

### Получение сообщений со стены группы через менеджер

>>> from vkontakte_groups.models import Group
>>> group = Group.remote.fetch(ids=[16297716])[0]
>>> Post.remote.fetch_group_wall(group=group)
[<Post: ...>, <Post: ...>, <Post: ...>, '...(remaining elements truncated)...']

### Получение комментариев сообщения со стены группы через менеджер

>>> from vkontakte_users.models import User
>>> user = User.remote.fetch(ids=[1])[0]
>>> post = user.wall_posts.all()[0]
>>> Comment.remote.fetch_user_post(post=post)
[<Comment: ...>, <Comment: ...>, <Comment: ...>, '...(remaining elements truncated)...']

### Получение комментариев сообщения со стены группы через менеджер

>>> from vkontakte_groups.models import Group
>>> group = Group.remote.fetch(ids=[16297716])[0]
>>> post = group.wall_posts.all()[0]
>>> Comment.remote.fetch_group_post(post=post)
[<Comment: ...>, <Comment: ...>, <Comment: ...>, '...(remaining elements truncated)...']

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

django-vkontakte-wall-0.3.6.tar.gz (34.1 kB view details)

Uploaded Source

File details

Details for the file django-vkontakte-wall-0.3.6.tar.gz.

File metadata

File hashes

Hashes for django-vkontakte-wall-0.3.6.tar.gz
Algorithm Hash digest
SHA256 1852919f547ff2d692f0066ba8b2837186e3a1679ea66dbcd54baf309f7b2af4
MD5 caa8bc0ee42327e92975cd9bb0e88543
BLAKE2b-256 365718490c0413b4234de024ca879b44f60ba7fda6a802cf6d0779d366ce219d

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page