Django实现Vkontakte API Groups
项目描述
Django Vkontakte Groups
=======================
[](http://badge.fury.io/py/django-vkontakte-groups) [](https://travis-ci.org/ramusus/django-vkontakte-groups) [](https://coveralls.io/r/ramusus/django-vkontakte-groups)
应用程序允许通过Vkontakte API使用标准Django模型与Vkontakte群组、它们的统计信息和用户进行交互
安装
---------
pip安装django-vkontakte-groups
在`settings.py`中需要添加
INSTALLED_APPS = (
...
'oauth_tokens',
'taggit',
'vkontakte_api',
'vkontakte_groups',
)
# oauth-tokens 设置
OAUTH_TOKENS_HISTORY = True # 在数据库中保留过期的访问令牌
OAUTH_TOKENS_VKONTAKTE_CLIENT_ID = '' # 应用程序ID
OAUTH_TOKENS_VKONTAKTE_CLIENT_SECRET = '' # 应用程序密钥
OAUTH_TOKENS_VKONTAKTE_SCOPE = ['ads,wall,photos,friends,stats'] # 应用程序作用域
OAUTH_TOKENS_VKONTAKTE_USERNAME = '' # 用户登录名
OAUTH_TOKENS_VKONTAKTE_PASSWORD = '' # 用户密码
OAUTH_TOKENS_VKONTAKTE_PHONE_END = '' # 用户手机号码最后四位
API方法覆盖
--------------------
* [groups.getById](http://vk.com/dev/groups.getById) – 根据标识符返回群组信息;
* [groups.search](http://vk.com/dev/groups.search) – 根据指定子字符串搜索群组;
计划中
* [groups.getMembers](http://vk.com/dev/groups.getMembers) – 返回群组成员列表;
使用示例
---------------------
### 获取群组
>>> from vkontakte_groups.models import Group
>>> Group.remote.fetch(ids=[16297716])
[<Group: Coca-Cola>]
### 通过群组方法获取群组讨论
为此需要安装额外应用程序
将[`django-vkontakte-board`](http://github.com/ramusus/django-vkontakte-board/)添加到`INSTALLED_APPS`中。
>>> from vkontakte_groups.models import Group
>>> group = Group.remote.fetch(ids=[16297716])[0]
>>> group.fetch_topics()
[<主题:奥林匹克圣火接力 ► 在这个主题中提出问题>,
<主题:迎新年促销活动 "与Coca-Cola一起迎接新年,带上一群可爱的小熊!" ► 提问和讨论>,
'...(其余元素省略)...']
通过管理器访问小组讨论。
>>> group.topics.count()
12
通过管理器访问所有讨论的评论。
>>> group.topics_comments.count()
23854
### 通过小组方法获取群组墙上的消息
为此需要安装额外应用程序
将[`django-vkontakte-wall`](http://github.com/ramusus/django-vkontakte-wall/)添加到`INSTALLED_APPS`中。
>>> from vkontakte_groups.models import Group
>>> group = Group.remote.fetch(ids=[16297716])[0]
>>> group.fetch_posts()
[<帖子:Coca-Cola: ...>,<帖子:Coca-Cola: ...>,'...(其余元素省略)...']
通过管理器访问群组消息。
>>> group.wall_posts.count()
5498
通过管理器访问所有消息的评论。
>>> group.wall_comments.count()
73637
### 通过小组方法获取群组的相册
为此需要安装额外应用程序
将[`django-vkontakte-photos`](http://github.com/ramusus/django-vkontakte-photos/)添加到`INSTALLED_APPS`中。
>>> from vkontakte_groups.models import Group
>>> group = Group.remote.fetch(ids=[16297716])[0]
>>> group.fetch_albums()
[<相册:Coca-Cola带来了FIFA世界杯奖杯>,
<相册:Coca-Cola的旧广告>,
'...(其余元素省略)...']
通过管理器访问群组相册。
>>> group.photo_albums.count()
47
通过管理器访问所有相册的照片。
>>> group.photos.count()
4432
### 获取群组统计信息
为此需要安装额外应用程序
将[`django-vkontakte-groups-statistic`](http://github.com/ramusus/django-vkontakte-groups-statistic/)添加到`INSTALLED_APPS`中。
通过API获取群组统计信息
>>> from vkontakte_groups.models import Group
>>> group = Group.remote.fetch(ids=[16297716])[0]
>>> group.fetch_statistic(api=True)
通过API获取的统计信息可通过管理器访问
>>> stat = group.statistics_api.all()[0]
>>> stat.__dict__
{'_state': <django.db.models.base.ModelState at 0xa2812ac>,
'age_18': 240,
'age_18_21': 86,
'age_21_24': 75,
'age_24_27': 59,
'age_27_30': 31,
'age_30_35': 23,
'age_35_45': 9,
'age_45': 13,
'date': datetime.date(2012, 3, 14),
'females': 295,
'fetched': datetime.datetime(2012, 9, 12, 0, 50, 42, 597930),
'group_id': 14,
'id': 182,
'males': 406,
'views': 1401,
'visitors': 702}
通过解析器获取群组统计信息
>>> from vkontakte_groups.models import Group
>>> group = Group.remote.fetch(ids=[16297716])[0]
>>> group.fetch_statistic()
通过解析器获取的统计信息可通过管理器访问
>>> stat = group.statistics.all()[0]
>>> stat.__dict__
{'_state': <django.db.models.base.ModelState at 0xa28168c>,
'act_members': None,
'act_visitors': None,
'activity_photo_comments': None,
'activity_photos': None,
'activity_topic_comments': None,
'activity_topics': None,
'activity_video_comments': None,
'activity_videos': None,
'activity_wall': None,
'ads_members': None,
'ads_visitors': None,
'age_18': None,
'age_18_21': None,
'age_21_24': None,
'age_24_27': None,
'age_27_30': None,
'age_30_35': None,
'age_35_45': None,
'age_45': None,
'comments': 298,
'date': datetime.date(2011, 8, 25),
'ex_members': 595,
'females': None,
'group_id': 14,
'id': 2410,
'likes': 26,
'males': None,
'members': 335748,
'new_members': 143,
'reach': None,
'reach_age_18': None,
'reach_age_18_21': None,
'reach_age_21_24': None,
'reach_age_24_27': None,
'reach_age_27_30': None,
'reach_age_30_35': None,
'reach_age_35_45': None,
'reach_age_45': None,
'reach_females': None,
'reach_males': None,
'reach_subsribers': None,
'references': None,
'section_applications': None,
'section_audio': None,
'section_discussions': None,
'section_documents': None,
'section_photoalbums': None,
'section_video': None,
'shares': 4,
'views': 1188,
'visitors': 603,
'widget_ex_users': None,
'widget_members_views': None,
'widget_new_users': None,
'widget_users_views': None}
### 获取群组订阅者概览
为此需要安装额外的应用程序
`django-vkontakte-groups-migration` 并将其添加到 `INSTALLED_APPS`
>>> from vkontakte_groups.models import Group
>>> group = Group.remote.fetch(ids=[16297716])[0]
>>> group.update_users()
订阅者通过管理器可用
>>> migration = group.migrations.all()[0]
>>> len(migration.members_ids)
5277888
>>> migration.members_count
5277888
订阅者通过管理器可用。为此需要安装额外的应用程序
`django-vkontakte-users` 并将其添加到 `INSTALLED_APPS`
>>> group.users.count()
5277888
=======================
[](http://badge.fury.io/py/django-vkontakte-groups) [](https://travis-ci.org/ramusus/django-vkontakte-groups) [](https://coveralls.io/r/ramusus/django-vkontakte-groups)
应用程序允许通过Vkontakte API使用标准Django模型与Vkontakte群组、它们的统计信息和用户进行交互
安装
---------
pip安装django-vkontakte-groups
在`settings.py`中需要添加
INSTALLED_APPS = (
...
'oauth_tokens',
'taggit',
'vkontakte_api',
'vkontakte_groups',
)
# oauth-tokens 设置
OAUTH_TOKENS_HISTORY = True # 在数据库中保留过期的访问令牌
OAUTH_TOKENS_VKONTAKTE_CLIENT_ID = '' # 应用程序ID
OAUTH_TOKENS_VKONTAKTE_CLIENT_SECRET = '' # 应用程序密钥
OAUTH_TOKENS_VKONTAKTE_SCOPE = ['ads,wall,photos,friends,stats'] # 应用程序作用域
OAUTH_TOKENS_VKONTAKTE_USERNAME = '' # 用户登录名
OAUTH_TOKENS_VKONTAKTE_PASSWORD = '' # 用户密码
OAUTH_TOKENS_VKONTAKTE_PHONE_END = '' # 用户手机号码最后四位
API方法覆盖
--------------------
* [groups.getById](http://vk.com/dev/groups.getById) – 根据标识符返回群组信息;
* [groups.search](http://vk.com/dev/groups.search) – 根据指定子字符串搜索群组;
计划中
* [groups.getMembers](http://vk.com/dev/groups.getMembers) – 返回群组成员列表;
使用示例
---------------------
### 获取群组
>>> from vkontakte_groups.models import Group
>>> Group.remote.fetch(ids=[16297716])
[<Group: Coca-Cola>]
### 通过群组方法获取群组讨论
为此需要安装额外应用程序
将[`django-vkontakte-board`](http://github.com/ramusus/django-vkontakte-board/)添加到`INSTALLED_APPS`中。
>>> from vkontakte_groups.models import Group
>>> group = Group.remote.fetch(ids=[16297716])[0]
>>> group.fetch_topics()
[<主题:奥林匹克圣火接力 ► 在这个主题中提出问题>,
<主题:迎新年促销活动 "与Coca-Cola一起迎接新年,带上一群可爱的小熊!" ► 提问和讨论>,
'...(其余元素省略)...']
通过管理器访问小组讨论。
>>> group.topics.count()
12
通过管理器访问所有讨论的评论。
>>> group.topics_comments.count()
23854
### 通过小组方法获取群组墙上的消息
为此需要安装额外应用程序
将[`django-vkontakte-wall`](http://github.com/ramusus/django-vkontakte-wall/)添加到`INSTALLED_APPS`中。
>>> from vkontakte_groups.models import Group
>>> group = Group.remote.fetch(ids=[16297716])[0]
>>> group.fetch_posts()
[<帖子:Coca-Cola: ...>,<帖子:Coca-Cola: ...>,'...(其余元素省略)...']
通过管理器访问群组消息。
>>> group.wall_posts.count()
5498
通过管理器访问所有消息的评论。
>>> group.wall_comments.count()
73637
### 通过小组方法获取群组的相册
为此需要安装额外应用程序
将[`django-vkontakte-photos`](http://github.com/ramusus/django-vkontakte-photos/)添加到`INSTALLED_APPS`中。
>>> from vkontakte_groups.models import Group
>>> group = Group.remote.fetch(ids=[16297716])[0]
>>> group.fetch_albums()
[<相册:Coca-Cola带来了FIFA世界杯奖杯>,
<相册:Coca-Cola的旧广告>,
'...(其余元素省略)...']
通过管理器访问群组相册。
>>> group.photo_albums.count()
47
通过管理器访问所有相册的照片。
>>> group.photos.count()
4432
### 获取群组统计信息
为此需要安装额外应用程序
将[`django-vkontakte-groups-statistic`](http://github.com/ramusus/django-vkontakte-groups-statistic/)添加到`INSTALLED_APPS`中。
通过API获取群组统计信息
>>> from vkontakte_groups.models import Group
>>> group = Group.remote.fetch(ids=[16297716])[0]
>>> group.fetch_statistic(api=True)
通过API获取的统计信息可通过管理器访问
>>> stat = group.statistics_api.all()[0]
>>> stat.__dict__
{'_state': <django.db.models.base.ModelState at 0xa2812ac>,
'age_18': 240,
'age_18_21': 86,
'age_21_24': 75,
'age_24_27': 59,
'age_27_30': 31,
'age_30_35': 23,
'age_35_45': 9,
'age_45': 13,
'date': datetime.date(2012, 3, 14),
'females': 295,
'fetched': datetime.datetime(2012, 9, 12, 0, 50, 42, 597930),
'group_id': 14,
'id': 182,
'males': 406,
'views': 1401,
'visitors': 702}
通过解析器获取群组统计信息
>>> from vkontakte_groups.models import Group
>>> group = Group.remote.fetch(ids=[16297716])[0]
>>> group.fetch_statistic()
通过解析器获取的统计信息可通过管理器访问
>>> stat = group.statistics.all()[0]
>>> stat.__dict__
{'_state': <django.db.models.base.ModelState at 0xa28168c>,
'act_members': None,
'act_visitors': None,
'activity_photo_comments': None,
'activity_photos': None,
'activity_topic_comments': None,
'activity_topics': None,
'activity_video_comments': None,
'activity_videos': None,
'activity_wall': None,
'ads_members': None,
'ads_visitors': None,
'age_18': None,
'age_18_21': None,
'age_21_24': None,
'age_24_27': None,
'age_27_30': None,
'age_30_35': None,
'age_35_45': None,
'age_45': None,
'comments': 298,
'date': datetime.date(2011, 8, 25),
'ex_members': 595,
'females': None,
'group_id': 14,
'id': 2410,
'likes': 26,
'males': None,
'members': 335748,
'new_members': 143,
'reach': None,
'reach_age_18': None,
'reach_age_18_21': None,
'reach_age_21_24': None,
'reach_age_24_27': None,
'reach_age_27_30': None,
'reach_age_30_35': None,
'reach_age_35_45': None,
'reach_age_45': None,
'reach_females': None,
'reach_males': None,
'reach_subsribers': None,
'references': None,
'section_applications': None,
'section_audio': None,
'section_discussions': None,
'section_documents': None,
'section_photoalbums': None,
'section_video': None,
'shares': 4,
'views': 1188,
'visitors': 603,
'widget_ex_users': None,
'widget_members_views': None,
'widget_new_users': None,
'widget_users_views': None}
### 获取群组订阅者概览
为此需要安装额外的应用程序
`django-vkontakte-groups-migration` 并将其添加到 `INSTALLED_APPS`
>>> from vkontakte_groups.models import Group
>>> group = Group.remote.fetch(ids=[16297716])[0]
>>> group.update_users()
订阅者通过管理器可用
>>> migration = group.migrations.all()[0]
>>> len(migration.members_ids)
5277888
>>> migration.members_count
5277888
订阅者通过管理器可用。为此需要安装额外的应用程序
`django-vkontakte-users` 并将其添加到 `INSTALLED_APPS`
>>> group.users.count()
5277888
项目详情
下载文件
下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。
源分发
django-vkontakte-groups-0.7.2.tar.gz (32.7 kB 查看哈希值)