Django实现Facebook Graph API帖子
项目描述
Django Facebook Graph API Posts
===============================
[](http://badge.fury.io/py/django-facebook-posts) [](https://travis-ci.org/ramusus/django-facebook-posts) [](https://coveralls.io/r/ramusus/django-facebook-posts)
使用Django模型接口与应用Facebook Graph API Posts对象进行交互的应用
安装
------------
pip install django-facebook-posts
添加到`settings.py`中的行
INSTALLED_APPS = (
...
'oauth_tokens',
'facebook_api',
'facebook_applications',
'facebook_pages',
'facebook_users',
'facebook_posts',
)
# oauth-tokens 设置
OAUTH_TOKENS_HISTORY = True # 在数据库中保留过期的访问令牌
OAUTH_TOKENS_FACEBOOK_CLIENT_ID = '' # 应用ID
OAUTH_TOKENS_FACEBOOK_CLIENT_SECRET = '' # 应用密钥
OAUTH_TOKENS_FACEBOOK_SCOPE = ['offline_access'] # 应用范围
OAUTH_TOKENS_FACEBOOK_USERNAME = '' # 用户登录
OAUTH_TOKENS_FACEBOOK_PASSWORD = '' # 用户密码
使用示例
--------------
### 通过Graph ID获取帖子
>>> from facebook_posts.models import Post
>>> post = Post.remote.fetch('19292868552_10150189643478553')
>>> post
<Post: Facebook Developers: >
>>> post.__dict__
{'_application_cache': <Application: NetworkedBlogs>,
'_author_cache': <Page: Facebook Developers>,
'_author_content_type_cache': <ContentType: Facebook page>,
'_external_links_post_save': [],
'_external_links_to_add': [],
'_foreignkeys_post_save': [],
'_state': <django.db.models.base.ModelState at 0xbd7e7ec>,
'actions': [{'link': 'https://#/19292868552/posts/10150189643478553',
'name': 'Comment'},
{'link': 'https://#/19292868552/posts/10150189643478553',
'name': 'Like'},
{'link': 'http://networkedblogs.com/hGWk3?a=share', 'name': '分享'}],
'application_id': 18,
'author_content_type_id': 82,
'author_id': 9,
'author_json': {'category': '产品/服务',
'id': '19292868552',
'name': 'Facebook 开发者'},
'caption': '',
'comments_count': 753,
'comments_json': {'count': 753,
'data': [{'created_time': '2012-12-30T17:07:19+0000',
'from': {'id': '100004288712236', 'name': 'Jian Liu'},
'id': '19292868552_10150189643478553_24586753',
'likes': 1,
'message': 'dsa'}, ...]},
'comments_real_count': 594,
'created_time': datetime.datetime(2011, 5, 10, 18, 35, 38, tzinfo=tzutc()),
'description': u'\n我们继续让平台对用户更安全。今年早些时候,我们引入了用户通过 HTTPS 浏览 Facebook 的功能。因此,我们在开发者应用中提供了 “安全画布 URL” 和 “安全选项卡 URL” 字段,以便开发者可以通过 H',
'expanded_height': None,
'expanded_width': None,
'graph_id': '19292868552_10150189643478553',
'icon': 'http://m.ak.fbcdn.net/photos-b.ak/photos-ak-snc7/v85006/169/9953271133/app_2_9953271133_841622721.gif',
'id': 4364,
'likes_count': 8270,
'likes_json': {'count': 8270,
'data': [{'id': '100000499350811', 'name': u'Nguy\u1ec5n V\u0103n Linh'},
{'id': '670265477', 'name': 'Soonsang Hong'},
{'id': '100005341900488', 'name': 'Aloha Sanjay'},
{'id': '527488241', 'name': 'Princess Grace Dimaculangan'}]},
'likes_real_count': 0,
'link': 'http://developers.facebook.com/blog/post/497',
'message': '',
'message_tags': None,
'name': '开发者路线图更新:迁移到 OAuth 2.0 + HTTPS',
'object_id': None,
'owners_json': None,
'picture': 'http://m.ak.fbcdn.net/platform.ak/www/app_full_proxy.php?app=9953271133&v=3&size=z&cksum=e15ac22d55f6a9501d3b3ac64c5fb763&src=http%3A%2F%2Fimg.bitpixels.com%2Fgetthumbnail%3Fcode%3D78793%26size%3D120%26url%3Dhttp%3A%2F%2Fdevelopers.facebook.com%2Fblog%2F',
'place': None,
'privacy': {'value': ''},
'properties': [{'href': 'http://apps.facebook.com/blognetworks/blog/official_facebook_developer_blog',
'name': 'source',
'text': '官方 Facebook 开发者博客'},
{'href': 'http://developers.facebook.com/blog/post/497',
'name': 'link',
'text': '完整文章...'}],
'source': '',
'status_type': 'app_created_story',
'story': '',
'story_tags': None,
'type': 'link',
'updated_time': datetime.datetime(2013, 3, 15, 1, 24, 46, tzinfo=tzutc()),
'with_tags': None}
### 获取帖子评论
>>> from facebook_posts.models import Post
>>> post = Post.remote.fetch('19292868552_10150189643478553')
>>> post.fetch_comments()
[<Comment: Comment object>, <Comment: Comment object>, <Comment: Comment object>, '...(remaining elements truncated)...']
>>> post.comments.count()
82
>>> post.comments.all()[0].__dict__
Out[53]
{'_external_links_post_save': [],
'_external_links_to_add': [],
'_foreignkeys_post_save': [],
'_state': <django.db.models.base.ModelState at 0xbfc51cc>,
'author_content_type_id': 87,
'author_id': 6447,
'author_json': {u'id': u'767515690', u'name': u'Tim McKnight'},
'can_remove': False,
'created_time': datetime.datetime(2013, 3, 15, 5, 24, 46),
'graph_id': u'19292868552_10150189643478553_25321001',
'id': 3605,
'likes_count': 0,
'likes_real_count': 0,
'message': u'test',
'post_id': 4364,
'user_likes': False}
获取帖子的所有评论
>>> post.fetch_comments(all=True)
[<Comment: Comment object>, <Comment: Comment object>, <Comment: Comment object>, '...(remaining elements truncated)...']
>>> page.wall_comments.count()
610
### 获取帖子点赞
>>> from facebook_posts.models import Post
>>> post = Post.remote.fetch('19292868552_10150189643478553')
>>> post.likes_count # 通过 API 传输的点赞数量字段
8270
>>> post.likes_real_count # 实际点赞连接数量字段
0
>>> post.fetch_likes()
[<User: Cosmos Pham>, <User: Ismail Yanık>, '...(remaining elements truncated)...']
>>> post.like_users.count()
4316
>>> post.likes_real_count # 奇怪,但实际的点赞数量通常小于 likes_count 字段的值
4316
### 获取评论点赞
>>> from facebook_posts.models import Post, Comment
>>> post = Post.remote.fetch('19292868552_10150189643478553')
>>> comment = Comment.remote.fetch('19292868552_10150189643478553_16210808')
>>> comment.likes_count # 通过 API 传输的点赞数量字段
480
>>> comment.likes_real_count # 实际点赞连接数量字段
0
>>> comment.fetch_likes()
[<User: Blondi Gjini>, <User: Kerem Aydoğan>, '...(remaining elements truncated)...']
>>>> comment.like_users.count()
480
>>>> comment.likes_real_count
480
授权
---------
该库使用[Apache许可证,版本2.0](https://apache.ac.cn/licenses/LICENSE-2.0.html)。
请参阅库的各个文件以获取更多信息。
===============================
[](http://badge.fury.io/py/django-facebook-posts) [](https://travis-ci.org/ramusus/django-facebook-posts) [](https://coveralls.io/r/ramusus/django-facebook-posts)
使用Django模型接口与应用Facebook Graph API Posts对象进行交互的应用
安装
------------
pip install django-facebook-posts
添加到`settings.py`中的行
INSTALLED_APPS = (
...
'oauth_tokens',
'facebook_api',
'facebook_applications',
'facebook_pages',
'facebook_users',
'facebook_posts',
)
# oauth-tokens 设置
OAUTH_TOKENS_HISTORY = True # 在数据库中保留过期的访问令牌
OAUTH_TOKENS_FACEBOOK_CLIENT_ID = '' # 应用ID
OAUTH_TOKENS_FACEBOOK_CLIENT_SECRET = '' # 应用密钥
OAUTH_TOKENS_FACEBOOK_SCOPE = ['offline_access'] # 应用范围
OAUTH_TOKENS_FACEBOOK_USERNAME = '' # 用户登录
OAUTH_TOKENS_FACEBOOK_PASSWORD = '' # 用户密码
使用示例
--------------
### 通过Graph ID获取帖子
>>> from facebook_posts.models import Post
>>> post = Post.remote.fetch('19292868552_10150189643478553')
>>> post
<Post: Facebook Developers: >
>>> post.__dict__
{'_application_cache': <Application: NetworkedBlogs>,
'_author_cache': <Page: Facebook Developers>,
'_author_content_type_cache': <ContentType: Facebook page>,
'_external_links_post_save': [],
'_external_links_to_add': [],
'_foreignkeys_post_save': [],
'_state': <django.db.models.base.ModelState at 0xbd7e7ec>,
'actions': [{'link': 'https://#/19292868552/posts/10150189643478553',
'name': 'Comment'},
{'link': 'https://#/19292868552/posts/10150189643478553',
'name': 'Like'},
{'link': 'http://networkedblogs.com/hGWk3?a=share', 'name': '分享'}],
'application_id': 18,
'author_content_type_id': 82,
'author_id': 9,
'author_json': {'category': '产品/服务',
'id': '19292868552',
'name': 'Facebook 开发者'},
'caption': '',
'comments_count': 753,
'comments_json': {'count': 753,
'data': [{'created_time': '2012-12-30T17:07:19+0000',
'from': {'id': '100004288712236', 'name': 'Jian Liu'},
'id': '19292868552_10150189643478553_24586753',
'likes': 1,
'message': 'dsa'}, ...]},
'comments_real_count': 594,
'created_time': datetime.datetime(2011, 5, 10, 18, 35, 38, tzinfo=tzutc()),
'description': u'\n我们继续让平台对用户更安全。今年早些时候,我们引入了用户通过 HTTPS 浏览 Facebook 的功能。因此,我们在开发者应用中提供了 “安全画布 URL” 和 “安全选项卡 URL” 字段,以便开发者可以通过 H',
'expanded_height': None,
'expanded_width': None,
'graph_id': '19292868552_10150189643478553',
'icon': 'http://m.ak.fbcdn.net/photos-b.ak/photos-ak-snc7/v85006/169/9953271133/app_2_9953271133_841622721.gif',
'id': 4364,
'likes_count': 8270,
'likes_json': {'count': 8270,
'data': [{'id': '100000499350811', 'name': u'Nguy\u1ec5n V\u0103n Linh'},
{'id': '670265477', 'name': 'Soonsang Hong'},
{'id': '100005341900488', 'name': 'Aloha Sanjay'},
{'id': '527488241', 'name': 'Princess Grace Dimaculangan'}]},
'likes_real_count': 0,
'link': 'http://developers.facebook.com/blog/post/497',
'message': '',
'message_tags': None,
'name': '开发者路线图更新:迁移到 OAuth 2.0 + HTTPS',
'object_id': None,
'owners_json': None,
'picture': 'http://m.ak.fbcdn.net/platform.ak/www/app_full_proxy.php?app=9953271133&v=3&size=z&cksum=e15ac22d55f6a9501d3b3ac64c5fb763&src=http%3A%2F%2Fimg.bitpixels.com%2Fgetthumbnail%3Fcode%3D78793%26size%3D120%26url%3Dhttp%3A%2F%2Fdevelopers.facebook.com%2Fblog%2F',
'place': None,
'privacy': {'value': ''},
'properties': [{'href': 'http://apps.facebook.com/blognetworks/blog/official_facebook_developer_blog',
'name': 'source',
'text': '官方 Facebook 开发者博客'},
{'href': 'http://developers.facebook.com/blog/post/497',
'name': 'link',
'text': '完整文章...'}],
'source': '',
'status_type': 'app_created_story',
'story': '',
'story_tags': None,
'type': 'link',
'updated_time': datetime.datetime(2013, 3, 15, 1, 24, 46, tzinfo=tzutc()),
'with_tags': None}
### 获取帖子评论
>>> from facebook_posts.models import Post
>>> post = Post.remote.fetch('19292868552_10150189643478553')
>>> post.fetch_comments()
[<Comment: Comment object>, <Comment: Comment object>, <Comment: Comment object>, '...(remaining elements truncated)...']
>>> post.comments.count()
82
>>> post.comments.all()[0].__dict__
Out[53]
{'_external_links_post_save': [],
'_external_links_to_add': [],
'_foreignkeys_post_save': [],
'_state': <django.db.models.base.ModelState at 0xbfc51cc>,
'author_content_type_id': 87,
'author_id': 6447,
'author_json': {u'id': u'767515690', u'name': u'Tim McKnight'},
'can_remove': False,
'created_time': datetime.datetime(2013, 3, 15, 5, 24, 46),
'graph_id': u'19292868552_10150189643478553_25321001',
'id': 3605,
'likes_count': 0,
'likes_real_count': 0,
'message': u'test',
'post_id': 4364,
'user_likes': False}
获取帖子的所有评论
>>> post.fetch_comments(all=True)
[<Comment: Comment object>, <Comment: Comment object>, <Comment: Comment object>, '...(remaining elements truncated)...']
>>> page.wall_comments.count()
610
### 获取帖子点赞
>>> from facebook_posts.models import Post
>>> post = Post.remote.fetch('19292868552_10150189643478553')
>>> post.likes_count # 通过 API 传输的点赞数量字段
8270
>>> post.likes_real_count # 实际点赞连接数量字段
0
>>> post.fetch_likes()
[<User: Cosmos Pham>, <User: Ismail Yanık>, '...(remaining elements truncated)...']
>>> post.like_users.count()
4316
>>> post.likes_real_count # 奇怪,但实际的点赞数量通常小于 likes_count 字段的值
4316
### 获取评论点赞
>>> from facebook_posts.models import Post, Comment
>>> post = Post.remote.fetch('19292868552_10150189643478553')
>>> comment = Comment.remote.fetch('19292868552_10150189643478553_16210808')
>>> comment.likes_count # 通过 API 传输的点赞数量字段
480
>>> comment.likes_real_count # 实际点赞连接数量字段
0
>>> comment.fetch_likes()
[<User: Blondi Gjini>, <User: Kerem Aydoğan>, '...(remaining elements truncated)...']
>>>> comment.like_users.count()
480
>>>> comment.likes_real_count
480
授权
---------
该库使用[Apache许可证,版本2.0](https://apache.ac.cn/licenses/LICENSE-2.0.html)。
请参阅库的各个文件以获取更多信息。
项目详情
关闭
django-facebook-posts-0.6.1.tar.gz的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | a05041ad9cf2356362928734347bc639a15ba0e6d9971c8bd1e2eea195996dfc |
|
MD5 | 42eed46becb2b17169c0a8d9a71c0f93 |
|
BLAKE2b-256 | 11690a18afd278fa354498095f299ffcaa83ef1a5b14e4951471dc3b6d9400a7 |