为django提供简单的twitter集成。
ecl_twitter的Python项目详细描述
ECL推特
ecl twitter是一个很棒的python 2.7+的twitter库。它使推特 api是一个很好的工具,django集成也很好。要了解更多信息,请阅读 开始!
如果您有问题需要报告或功能请求,请将其添加到我们的 issue tracker。
配置
如果您想将ecl twitter用于独立应用程序(例如 你写的脚本是为了下载你的tweets),你需要设置 环境变量TWITTER_KEY、TWITTER_SECRET和 TWITTER_REDIRECT_URL使用适合您twitter的值 应用程序:
export TWITTER_KEY="Gmxb5Rh7gpOpzunQ7SQcOA" export TWITTER_SECRET="irhZg1W5NO2r7M9IRwhjHKpzKPjJ3HXc6RYCbrM0" export TWITTER_REDIRECT_URL="http://example.com/oauth/complete"
如果您只对与django集成感兴趣,请阅读django。
身份验证
我们已经使身份验证变得非常简单。老实说,可能太简单了。
>>> from ecl_twitter import Twitter >>> twitter = Twitter() >>> url, token, secret = twitter.generate_authorization() >>> url https://api.twitter.com/oauth/authorize?oauth_token=XXX
在浏览器中打开此url并允许应用程序后,将重定向到带有pin的页面。这是您的verifier。:
>>> twitter = Twitter(token, secret) >>> data = twitter.oauth.access_token(oauth_verifier=verifier) >>> data <Objectifier#dict oauth_token_secret=unicode user_id=unicode oauth_token=unicode screen_name=unicode>
恭喜你,你已经通过了twitter的认证(告诉你这很简单)。data是一个Objectifier对象,它应该包含您的令牌、机密、用户ID和屏幕名称。
要调用API,请使用新获取的访问令牌和访问令牌密钥:
>>> twitter = Twitter(data.oauth_token, data.oauth_token_secret) >>> tweets = twitter.statuses.user_timeline() >>> tweets <Objectifier#list elements:20>
所以,是的。就这样。多产多产。
与django
集成我们上面做的很简单。对于django项目,我们已经让它变得更加简单。在您的视图文件中:
from django.contrib.auth import authenticate, login from django.http import HttpResponseRedirect from ecl_twitter import twitter_begin, twitter_callback from .models import User # ... @twitter_begin def oauth_twitter_begin(request): pass @twitter_callback def oauth_twitter_complete(request, data): user, _ = User.objects.get_or_create(screen_name=data.screen_name, defaults={ 'access_token': data.oauth_token, 'access_token_secret': data.oauth_token_secret }) user = authenticate(id=user.id) login(request, user) return HttpResponseRedirect(reverse('home'))
将这些值添加到设置中。:
# The User model that you'll be using to authenticate with Twitter. PRIMARY_USER_MODEL = "app.User" AUTHENTICATION_BACKENDS = ( # ... 'ecl_twitter.backends.TwitterAuthBackend', ) TWITTER_KEY = "Gmxb5Rh7gpOpzunQ7SQcOA" TWITTER_SECRET = "irhZg1W5NO2r7M9IRwhjHKpzKPjJ3HXc6RYCbrM0" TWITTER_REDIRECT_URL = "http://example.com/oauth/complete"
然后将以上视图映射到您的url.py:
# ... urlpatterns = patterns('app.views', # ... url(r'^oauth/twitter/begin$', 'oauth_twitter_begin'), url(r'^oauth/twitter/complete$', 'oauth_twitter_complete'), )
你完了。哦,您可能还需要添加一些字段来存储 用户模型中与twitter相关的字段。
贡献、反馈和问题
索引和表格
- genindex
- 修改
- 搜索