将Django支持的站点连接到社交网络和其他在线服务。
django-connected的Python项目详细描述
快速启动
安装django-connected:
pip install django-connected
将connected_accounts添加到INSTALLED_APPS:
INSTALLED_APPS = ( ... 'connected_accounts', 'connected_accounts.providers', ... )
同步数据库(如果使用的是django 1.6.x,则要求south>;=1.0.1):
python manage.py migrate
支持的提供程序
- 比特(OAuth2)
- 研究(OAuth2)
- Facebook(OAuth2)
- 谷歌(OAuth2)
- Instagram(OAuth2)
- MailChimp(OAuth2)
- 推特(OAuth)
- 更多…(即将推出)
配置
大多数提供商要求您注册一个所谓的api客户端或应用程序,其中包含客户端id和api机密。
在提供者一侧创建oauth应用程序时,请特别注意回调url(有时也称为重定向url)。
使用表单的回调url:
http://example.com/admin/connected_accounts/account/callback/<provider_name>/
研究
在这里注册您的oauth2应用程序:http://disqus.com/api/applications/
CONNECTED_ACCOUNTS_DISQUS_CONSUMER_KEY = '<disqus_client_id>' CONNECTED_ACCOUNTS_DISQUS_CONSUMER_SECRET = '<disqus_client_secret>'
默认情况下,read和write作用域已启用
CONNECTED_ACCOUNTS_DISQUS_SCOPE = ['read', 'write', ]
作用域值的可用权限是read、write、email和admin。
可以通过在https://developers.facebook.com/apps创建应用程序来获取密钥和密钥
CONNECTED_ACCOUNTS_FACEBOOK_CONSUMER_KEY = '<facebook_consumer_key>' CONNECTED_ACCOUNTS_FACEBOOK_CONSUMER_SECRET = '<facebook_consumer_secret>'
默认情况下,email、public_profile和user_friends已启用,使用其他权限的应用程序需要Facebook进行审阅:
CONNECTED_ACCOUNTS_FACEBOOK_SCOPE = ['email', 'public_profile', 'user_friends']
使用FACEBOOK_AUTH_PARAMS将其他参数传递给facebook api:
CONNECTED_ACCOUNTS_FACEBOOK_AUTH_PARAMS = {'auth_type': 'reauthenticate'}
谷歌
google提供商是基于oauth2的。创建一个google应用程序,通过开发人员控制台获取密钥和机密https://console.developers.google.com/
CONNECTED_ACCOUNTS_GOOGLE_CONSUMER_KEY = '<google_client_id>' CONNECTED_ACCOUNTS_GOOGLE_CONSUMER_SECRET = '<google_client_secret>'
默认情况下,profile和email作用域已启用:
CONNECTED_ACCOUNTS_GOOGLE_SCOPE = ['profile', 'email']
默认情况下,已启用脱机访问请求:
CONNECTED_ACCOUNTS_GOOGLE_AUTH_PARAMS = {'access_type': 'offline'}
有关详细信息,请参见https://developers.google.com/identity/protocols/OAuth2WebServer#offline。
推特
您可以通过https://apps.twitter.com/app/new在Twitter上注册应用程序
CONNECTED_ACCOUNTS_TWITTER_CONSUMER_KEY = '<twitter_consumer_key>' CONNECTED_ACCOUNTS_TWITTER_CONSUMER_SECRET = '<twitter_consumer_secret>'
在此处注册您的oauth应用程序:https://instagram.com/developer/clients/register/
CONNECTED_ACCOUNTS_INSTAGRAM_CONSUMER_KEY = '<instagram_client_id>' CONNECTED_ACCOUNTS_INSTAGRAM_CONSUMER_SECRET = '<instagram_client_secret>'
用法
通过在自定义模型上定义一个(或多个)AccountField,您可以利用自定义应用程序中连接的帐户。
快速启动
您需要在要使用的模型上定义accountfield:
from django.db import models from connected_accounts.fields import AccountField class MyModel(models.Model): account = AccountField('twitter') [...]
AccountField将字符串作为第一个参数,该参数将用于限制给定字段可用帐户的选择。
管理集成
为在应用程序的管理中提供具有^ {TT16}$的模型的管理支持,您需要使用MIXIN ^ {TT19}$以及ModelAdmin。注意在类定义中,ConnectedAccountAdminMixin必须在modeladmin之前:
from django.contrib import admin from connected_accounts.admin import ConnectedAccountAdminMixin from myapp.models import MyModel class MyModelAdmin(ConnectedAccountAdminMixin, admin.ModelAdmin): pass admin.site.register(MyModel, MyModelAdmin)
使用django-connected
的包- https://github.com/mishbahr/djangocms-disqus-为您的django cms供电的站点集成了单点登录(sso)、延迟加载、分析等选项。
- https://github.com/mishbahr/djangocms-twitter2-使用最新的twitter 1.1api为您的django-cms网站显示tweets的最简单方法。在没有第三方小部件的情况下,在你的网站上嵌入tweets是一个很好的选择。
- https://github.com/mishbahr/djangocms-instagram-一个简单但多功能的Instagram插件,适用于Django CMS支持的站点。