Django应用程序,用于开发vk.com(又名vkontakte.ru)iframe应用程序
项目描述
Django应用程序,用于开发vk.com(又名vkontakte.ru,俄罗斯最大的社交网络)iframe应用程序。
处理用户认证和注册。
安装
$ pip install django-vkontakte-iframe
需求
django-annoying用于AutoOneToOneField
可选
vkontakte >= 1.3用于request.vk_api以及通过管理操作填充城市和国家信息。
用法
在此处注册和配置vkontakte iframe应用程序: http://vkontakte.ru/apps.php?act=add
将应用程序设置添加到settings.py
VK_APP_ID = '1234567' # Application ID VK_APP_KEY = 'M1gytuHwni' # Application key VK_APP_SECRET = 'MiRFwrDYwcYFCTD18EcY' # Secure key
将‘vk_iframe’添加到INSTALLED_APPS。
将‘vk_iframe.backends.VkontakteUserBackend’添加到AUTHENTICATION_BACKENDS
AUTHENTICATION_BACKENDS = ( 'django.contrib.auth.backends.ModelBackend', 'vk_iframe.backends.VkontakteUserBackend', )
将‘vk_iframe.middleware.AuthenticationMiddleware’,‘vk_iframe.middleware.IFrameFixMiddleware’和‘vk_iframe.middleware.LoginRequiredMiddleware’添加到MIDDLEWARE_CLASSES
MIDDLEWARE_CLASSES = [ # ... 'django.contrib.auth.middleware.AuthenticationMiddleware', # ... 'vk_iframe.middleware.IFrameFixMiddleware', 'vk_iframe.middleware.AuthenticationMiddleware', # ... 'django.middleware.locale.LocaleMiddleware', # ... 'vk_iframe.middleware.LoginRequiredMiddleware', ]
请注意,‘vk_iframe.middleware.AuthenticationMiddleware’必须在‘django.contrib.auth.middleware.AuthenticationMiddleware’之后,但必须在‘django.middleware.locale.LocaleMiddleware’之前。
‘vk_iframe.middleware.LoginRequiredMiddleware’必须在‘vk_iframe.middleware.AuthenticationMiddleware’之后。
Vkontakte访客将被自动注册并授权为django用户(用户名 == vkontakte用户ID)。
LoginRequiredMiddleware是可选的。对于未授权的请求,它会返回403错误,这些请求的URL不在settings.PUBLIC_URLS中列出。出于安全原因,您应该启用它。PUBLIC_URLS的示例
PUBLIC_URLS = [ '^admin/$', '^my-callback/', ]
如果使用i18n,则Vkontakte用户的语言将用作django用户语言。
运行python ./manage.py syncdb(如果使用South,则为python ./manage.py migrate vk_iframe)
可选:加载初始地理数据(城市和国家)
python manage loaddata vk-geo
如果您想存储更多用户数据,请将以下行作为“首次API请求”(“Первый запрос к API”)选项(在您的vkontakte.ru应用程序编辑页面)
method=getProfiles&uids={viewer_id}&format=json&v=3.0&fields=uid,first_name,last_name,nickname,domain,sex,bdate,city,country,timezone,photo,photo_medium,photo_big,photo_rec,has_mobile,rate,contacts,education
对于IE:根据您的站点隐私策略,通过在settings.py中提供VK_P3P_POLICY选项来调整P3P策略头部值。
VK_P3P_POLICY = 'IDC DSP COR IVAi IVDi OUR TST'
默认值为‘IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT’。有关完整标签集,请参阅http://www.p3pwriter.com/LRN_111.asp。
就是这些。现在,您的所有应用访客都已注册并认证为django用户。额外的个人资料数据可通过user.vk_profile访问。如果存在访问令牌,则vkontakte.API实例作为request.vk_api可用。
变更
0.4.1 (2013-03-07)
支持django 1.5(感谢Maxim Syabro)。
0.4 (2012-11-10)
添加了带有vkontakte.API实例的request.vk_api(感谢Anton Smirnov);
解决forms.py中的AttributeError问题(感谢Evgeniy Kirov);
改进了Safari Cookie修复(感谢Domantas Jackūnas);
当用户代理未设置时,IFrameFixMiddleware现在可以工作(感谢Evgeniy Kirov)。
0.3 (2011-11-28)
认证后端已修复(感谢Evgeniy Kirov和http://habrahabr.ru/users/Zaharov/);
改进了README;
IE修复:添加了P3P策略头部(感谢Maxim Syabro的建议);
修复了Opera和Safari Cookie问题(感谢Evgeniy Kirov);
替代OpenAPI认证(感谢Evgeniy Kirov)。
0.2 (2010-10-30)
将Vkontakte用户语言集成到django i18n。感谢Vasyl Nakvasiuk。
修复了InnoDB fixture加载错误。
0.1.1 (2010-10-09)
修复了错误:如果用户语言未知,则不允许登录。完整的vkontakte语言列表。感谢Vasyl Nakvasiuk。
0.1 (2010-09-06)
第一个版本
django-vkontakte-iframe-0.4.1.tar.gz的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | c549c19dc71e32d0e3db6742ce2c3ccd2d3b5a1cd8a35dcef5c4ed6c4239ad0c |
|
MD5 | e1d42dfcb6bfc73ceb02ac8e6d692171 |
|
BLAKE2b-256 | 2d7b086c2e46fd123c00a07695f6fff86c7af33a4affb45472c07f411e2df827 |