跳转到主要内容

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以及通过管理操作填充城市和国家信息。

用法

  1. 在此处注册和配置vkontakte iframe应用程序: http://vkontakte.ru/apps.php?act=add

  2. 将应用程序设置添加到settings.py

    VK_APP_ID = '1234567'                   # Application ID
    VK_APP_KEY = 'M1gytuHwni'               # Application key
    VK_APP_SECRET = 'MiRFwrDYwcYFCTD18EcY'  # Secure key
  3. 将‘vk_iframe’添加到INSTALLED_APPS。

  4. 将‘vk_iframe.backends.VkontakteUserBackend’添加到AUTHENTICATION_BACKENDS

    AUTHENTICATION_BACKENDS = (
        'django.contrib.auth.backends.ModelBackend',
        'vk_iframe.backends.VkontakteUserBackend',
    )
  5. 将‘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用户语言。

  6. 运行python ./manage.py syncdb(如果使用South,则为python ./manage.py migrate vk_iframe

  7. 可选:加载初始地理数据(城市和国家)

    python manage loaddata vk-geo
  8. 如果您想存储更多用户数据,请将以下行作为“首次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
  9. 对于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

  10. 就是这些。现在,您的所有应用访客都已注册并认证为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)

第一个版本

由以下机构支持

AWSAWS 云计算和安全赞助商 DatadogDatadog 监控 FastlyFastly CDN GoogleGoogle 下载分析 MicrosoftMicrosoft PSF 赞助商 PingdomPingdom 监控 SentrySentry 错误日志 StatusPageStatusPage 状态页面