Django实现Vkontakte API Wall
项目描述
Django Vkontakte Wall
=====================
[](http://badge.fury.io/py/django-vkontakte-wall) [](https://travis-ci.org/ramusus/django-vkontakte-wall) [](https://coveralls.io/r/ramusus/django-vkontakte-wall)
应用程序允许通过Vkontakte API和解析器使用标准Django模型与Vkontakte的墙、消息和评论进行交互
安装
---------
pip install django-vkontakte-wall
在`settings.py`中需要添加
INSTALLED_APPS = (
...
'oauth_tokens',
'taggit',
'vkontakte_api',
'vkontakte_places',
'vkontakte_users',
'vkontakte_groups',
'vkontakte_wall',
'm2m_history',
)
# 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方法覆盖
--------------------
* [wall.get](http://vk.com/dev/wall.get) – 返回墙上的帖子列表;
* [wall.getById](http://vk.com/dev/wall.getById) – 通过ID获取用户的墙帖子;
* [wall.getLikes](http://vk.com/dev/wall.getLikes) – 获取喜欢该帖子的用户信息;
* [wall.post](http://vk.com/dev/wall.post) – 在自己的或他人的墙上发布新帖子;
* [wall.edit](http://vk.com/dev/wall.edit) – 编辑墙上的帖子;
* [wall.delete](http://vk.com/dev/wall.delete) – 删除墙上的帖子;
* [wall.restore](http://vk.com/dev/wall.restore) – 恢复用户墙上被删除的帖子;
* [wall.getComments](http://vk.com/dev/wall.getComments) – 获取用户墙上帖子的评论;
* [wall.addComment](http://vk.com/dev/wall.addComment) – 在用户或群组的墙上添加评论;
* [wall.editComment](http://vk.com/dev/wall.editComment) – 编辑用户或群组墙上的评论;
* [wall.deleteComment](http://vk.com/dev/wall.deleteComment) – 删除当前用户对自己或他人墙上的评论;
* [wall.restoreComment](http://vk.com/dev/wall.restoreComment) – 恢复当前用户对自己或他人墙上的评论;
使用解析器
---------------------
* 获取群组墙上的消息;*
* 获取群组墙上消息的评论;*
* 获取消息的点赞数;*
* 获取消息的转发数。
(*) 复制API功能
使用示例
---------------------
### 通过标识符获取消息
>>> from vkontakte_wall.models import Post
>>> Post.remote.fetch(ids=['5223304_130', '-16297716_126261'])
[<Post: ...>, <Post: ...>]
### 通过用户方法获取用户墙上的消息
>>> 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)...']
### 在墙上发布帖子
>>> post = Post.objects.create(**param)
>>> print post.text
'message'
或
>>> post = Post()
>>> post.text = 'message'
....
>>> post.save()
>>> post.text
'message'
### 编辑已发布帖子
>>> post = Post.objects.get(remote_id='5223304_130')
>>> post.text = '已编辑的消息'
>>> post.save()
>>> post.text
'已编辑的消息'
### 删除已发布帖子
>>> post.delete() # 帖子不会被从数据库中删除,
>>> post.archived
True # 而是将此属性archived设置为True
### 恢复已删除帖子
>>> post.restore() # 帖子不会被重新创建
>>> post.archived
False # 而是将此属性archived设置为False
### 在墙上发布评论
>>> test_comment = Comment.objects.create(**compent_param)
>>> test_comment
<Comment:...>
或
>>> comment = Comment()
>>> comment.text = 'text'
....
>>> comment.save()
>>> comment.remote_id
'123123_123'
>>> comment.text
'text'
### 编辑已发布评论
>>> edited_message = '已编辑的评论消息'
>>> comment = Comment.objects.get(...)
>>> comment.text = '编辑过的评论信息'
>>> comment.save()
>>> comment.text
'编辑过的评论信息'
### 删除已发布的评论
>>> test_comment.delete() # 记录不会被从数据库中删除,
>>> test_comment.archived
True # 而是将此属性archived设置为True
### 恢复已删除的评论
>>> test_comment.restore() # 记录不会被重新创建
>>> test_comment.archived
False # 而是将此属性archived设置为False
=====================
[](http://badge.fury.io/py/django-vkontakte-wall) [](https://travis-ci.org/ramusus/django-vkontakte-wall) [](https://coveralls.io/r/ramusus/django-vkontakte-wall)
应用程序允许通过Vkontakte API和解析器使用标准Django模型与Vkontakte的墙、消息和评论进行交互
安装
---------
pip install django-vkontakte-wall
在`settings.py`中需要添加
INSTALLED_APPS = (
...
'oauth_tokens',
'taggit',
'vkontakte_api',
'vkontakte_places',
'vkontakte_users',
'vkontakte_groups',
'vkontakte_wall',
'm2m_history',
)
# 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方法覆盖
--------------------
* [wall.get](http://vk.com/dev/wall.get) – 返回墙上的帖子列表;
* [wall.getById](http://vk.com/dev/wall.getById) – 通过ID获取用户的墙帖子;
* [wall.getLikes](http://vk.com/dev/wall.getLikes) – 获取喜欢该帖子的用户信息;
* [wall.post](http://vk.com/dev/wall.post) – 在自己的或他人的墙上发布新帖子;
* [wall.edit](http://vk.com/dev/wall.edit) – 编辑墙上的帖子;
* [wall.delete](http://vk.com/dev/wall.delete) – 删除墙上的帖子;
* [wall.restore](http://vk.com/dev/wall.restore) – 恢复用户墙上被删除的帖子;
* [wall.getComments](http://vk.com/dev/wall.getComments) – 获取用户墙上帖子的评论;
* [wall.addComment](http://vk.com/dev/wall.addComment) – 在用户或群组的墙上添加评论;
* [wall.editComment](http://vk.com/dev/wall.editComment) – 编辑用户或群组墙上的评论;
* [wall.deleteComment](http://vk.com/dev/wall.deleteComment) – 删除当前用户对自己或他人墙上的评论;
* [wall.restoreComment](http://vk.com/dev/wall.restoreComment) – 恢复当前用户对自己或他人墙上的评论;
使用解析器
---------------------
* 获取群组墙上的消息;*
* 获取群组墙上消息的评论;*
* 获取消息的点赞数;*
* 获取消息的转发数。
(*) 复制API功能
使用示例
---------------------
### 通过标识符获取消息
>>> from vkontakte_wall.models import Post
>>> Post.remote.fetch(ids=['5223304_130', '-16297716_126261'])
[<Post: ...>, <Post: ...>]
### 通过用户方法获取用户墙上的消息
>>> 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)...']
### 在墙上发布帖子
>>> post = Post.objects.create(**param)
>>> print post.text
'message'
或
>>> post = Post()
>>> post.text = 'message'
....
>>> post.save()
>>> post.text
'message'
### 编辑已发布帖子
>>> post = Post.objects.get(remote_id='5223304_130')
>>> post.text = '已编辑的消息'
>>> post.save()
>>> post.text
'已编辑的消息'
### 删除已发布帖子
>>> post.delete() # 帖子不会被从数据库中删除,
>>> post.archived
True # 而是将此属性archived设置为True
### 恢复已删除帖子
>>> post.restore() # 帖子不会被重新创建
>>> post.archived
False # 而是将此属性archived设置为False
### 在墙上发布评论
>>> test_comment = Comment.objects.create(**compent_param)
>>> test_comment
<Comment:...>
或
>>> comment = Comment()
>>> comment.text = 'text'
....
>>> comment.save()
>>> comment.remote_id
'123123_123'
>>> comment.text
'text'
### 编辑已发布评论
>>> edited_message = '已编辑的评论消息'
>>> comment = Comment.objects.get(...)
>>> comment.text = '编辑过的评论信息'
>>> comment.save()
>>> comment.text
'编辑过的评论信息'
### 删除已发布的评论
>>> test_comment.delete() # 记录不会被从数据库中删除,
>>> test_comment.archived
True # 而是将此属性archived设置为True
### 恢复已删除的评论
>>> test_comment.restore() # 记录不会被重新创建
>>> test_comment.archived
False # 而是将此属性archived设置为False
项目详情
下载文件
下载适用于您平台的文件。如果您不确定选择哪一个,请了解有关安装包的更多信息。
源代码分发
django-vkontakte-wall-0.8.1.tar.gz (62.1 kB 查看哈希值)
关闭
django-vkontakte-wall-0.8.1.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | fec223531b1a9fde4e08cd286fc6ba8e698dd13193fc808dc607f5638648e44f |
|
MD5 | 5f21f3c0ef03e983bcc48627c07b538d |
|
BLAKE2b-256 | 939d42c45d1d429f89079a85f44c6c36c2bce40c36685e91e394534e1d564a31 |