Django Vkontakte Photos
Приложение позволяет взаимодействовать с фотоальбомами и фотографиями Вконтакте используя стандартные модели Django через Вконтакте API
Установка
pip install django-vkontakte-photos
В settings.py
необходимо добавить:
INSTALLED_APPS = (
...
'oauth_tokens',
'taggit',
'vkontakte_api',
'vkontakte_places,
'vkontakte_groups',
'vkontakte_users',
'vkontakte_photos',
)
# 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
- photos.getAlbums – возвращает список альбомов пользователя;
- photos.get – возвращает список фотографий в альбоме;
- photos.getComments – возвращает список комментариев к фотографии;
- photos.createComment – создает новый комментарий к фотографии;
- photos.deleteComment – сдаляет комментарий к фотографии;
- photos.restoreComment – восстанавливает удаленный комментарий к фотографии;
- photos.editComment – изменяет текст комментария к фотографии;
В планах:
- photos.getById – возвращает информацию о фотографиях;
- photos.getAllComments – возвращает отсортированный в антихронологическом порядке список всех комментариев к конкретному альбому или ко всем альбомам пользователя.
Использование парсера
- Получение количества комментариев к фотографии; *
- Получение количества лайков фотографии; *
(*) Дублирование функционала API
Примеры использования
Получение фотоальбомов группы через метод группы
Для этого необходимо установить дополнительно приложение
django-vkontakte-groups
и добавить его в INSTALLED_APPS
>>> from vkontakte_groups.models import Group
>>> group = Group.remote.fetch(ids=[16297716])[0]
>>> group.fetch_albums()
[<Album: Coca-Cola привозила кубок мира по футболу FIFA>,
<Album: Старая реклама Coca-Cola>,
'...(remaining elements truncated)...']
Фотоальбомы группы доступны через менеджер
>>> group.photoalbums.count()
47
Фотографии всех альбомов группы доступны через менеджер
>>> group.photos.count()
4432
Получение фотоальбомов группы через менеджер
>>> from vkontakte_groups.models import Group
>>> from vkontakte_photos.models import Album
>>> group = Group.remote.fetch(ids=[16297716])[0]
>>> Album.remote.fetch(group=group, ids=[106769855])
[<Album: Coca-Cola привозила кубок мира по футболу FIFA>]
Получение фотографий альбома пользователя через менеджер
Для этого необходимо установить дополнительно приложение
django-vkontakte-users
и добавить его в INSTALLED_APPS
>>> from vkontakte_users.models import User
>>> from vkontakte_photos.models import Album, Photo
>>> user = User.remote.fetch(ids=[1])[0]
>>> album = Album.remote.fetch(user=user, ids=[159337866])[0]
>>> Photo.remote.fetch(album=album)
[<Photo: Photo object>,
<Photo: Photo object>,
<Photo: Photo object>,
<Photo: Photo object>]