2011-06-19 30 views
24

我试图用python连接到twitter,我发现它真的很令人沮丧。
一切我读表明,我需要一个消费重点,消费者秘密访问密钥和访问秘密 - 例如:Using python OAUTH2 to access OAUTH protected resourcesTwitter OAuth2 Python入门

我可以从对Twitter的设置页面,消费者密钥和消费者秘密我创建的小测试应用程序,但其他两个呢?经过一番Google搜索之后,似乎每个人都认为这很明显,你从哪里得到这个信息并不值得提出,所以我可能会有一个非常愚蠢的时刻,但是有人可以为我这样的傻瓜拼出来吗?

编辑:
OK让这些细节打开你的Twitter应用程序设置,然后点击"My Access Token"链接。
我想在寻找一个访问令牌时,如果你点击标题为“我的访问令牌”的链接可能会有所帮助。我很想把我的愚蠢归咎于酒,但我真的不知道...

回答

94

几乎所有博客上的oauth示例似乎都是oauth授权阶段的示例,没有一个关注如何实际制作一旦你有这些请求,一旦你明白它是如何工作的,这部分是非常明显的。不幸的是,获得最初的理解相当困难。

如果您只是尝试通过脚本或应用程序访问您的Twitter帐户,您可以在应用程序设置页面的底部获得访问令牌(在python oauth库中称为密钥)并保留dev.twitter.com在标题您的访问令牌

import oauth2 as oauth 
import json 

CONSUMER_KEY = "your app's consumer key" 
CONSUMER_SECRET = "your app's consumer secret" 
ACCESS_KEY = "your access token" 
ACCESS_SECRET = "your access token secret" 

consumer = oauth.Consumer(key=CONSUMER_KEY, secret=CONSUMER_SECRET) 
access_token = oauth.Token(key=ACCESS_KEY, secret=ACCESS_SECRET) 
client = oauth.Client(consumer, access_token) 

timeline_endpoint = "https://api.twitter.com/1.1/statuses/home_timeline.json" 
response, data = client.request(timeline_endpoint) 

tweets = json.loads(data) 
for tweet in tweets: 
    print tweet['text'] 

这个例子是使用Python的lib python-oauth2,这是一个不幸的是名为OAuth的库不OAuth2用户库。

如果你想真正让其他人授权他们的帐户被你的应用使用,那么你需要实现重定向舞蹈,你要求Twitter的请求令牌/秘密对,然后将用户重定向到twitter授权页面使用此请求令牌,他们登录并授权令牌并将其重定向回您的应用程序,然后将请求令牌交换为您可以存储并用于发出上述请求的访问令牌和秘密对。

Twitter的三向OAuth例自述在http://github.com/simplegeo/python-oauth2似乎涵盖需要做

+13

你应得奖牌这个答案。我一直在网上搜索有关如何从我自己的帐户中获取一些信息的详细信息,这是我能找到的唯一全面的答案。 – ash

+0

似乎有几十个图书馆和包装自称oauth或oauth2,这是什么确切的? –

+0

使用谷歌应用程序引擎我得到: 导入oauth2作为oauth ImportError:没有名为oauth2的模块 –

-3

我个人使用tweepy什么,它提供了一个很好的Python包装到Twitter的API