无法使用Python中的1.1 API获取Twitter用户时间轴

时间:2014-02-23 00:06:00

标签: python twitter

我正在尝试编写一个小型Twitter应用程序。我已经设法从Twitter文档运行身份验证Python示例,例如,我可以从“statuses / home_timeline.json”获取数据。

但现在我正在尝试使用“statuses / user_timeline.json”,而且没有骰子。

这是我正在使用的代码。这只是对网页中示例的修改。有什么不对?我对服务URI进行了三重检查。这不正确吗?

我正在使用github的python-oauth2-1.0.0版本,该文档引用的项目,但这是相当古老的。我应该使用更好的模块吗?顺便说一下,client.request中的参数不正确。

另一件事:我可以使用curl运行查询,在Twitter开发网页上创建命令行。

import oauth2 as oauth

CONSUMER_KEY = 'xxxxxxxxxxxxx'
CONSUMER_SECRET = 'xxxxxxxxxxxxxxxxxxxxxx'
ACCESS_KEY = 'xxxxxxxxxxxx'
ACCESS_SECRET = 'xxxxxxxxxxxxxxxxx'


def oauth_req(url, key, secret, http_method="GET", post_body=None,
              http_headers=None):
    consumer = oauth.Consumer(key=CONSUMER_KEY, secret=CONSUMER_SECRET)
    token = oauth.Token(key=key, secret=secret)
    client = oauth.Client(consumer, token)

    resp, content = client.request(
        url,
        method=http_method,
        body=post_body,
        headers=http_headers
    )
    return content


# home_timeline = oauth_req(
#     'https://api.twitter.com/1.1/statuses/home_timeline.json',
#     ACCESS_KEY,
#     ACCESS_SECRET
# )

home_timeline = oauth_req(
    'https://api.twitter.com/1.1/statuses/user_timeline.json?count=3&screen_name=twitterapi',
    ACCESS_KEY,
    ACCESS_SECRET
)

print home_timeline

2 个答案:

答案 0 :(得分:2)

我建议使用Twython包。您可以使用以下方式安装它:

pip install twython

或     easy_install twython

您可以使用以下代码获取用户时间表

import twython
CONSUMER_KEY = 'XXXXXXXXXXXX'
CONSUMER_SECRET = 'XXXXXXXXXXXXXXX'
twitter = twython.Twython(CONSUMER_KEY,CONSUMER_SECRET)
home_timeline = twitter.get_user_timeline(screen_name='@twitterapi')
print home_timeline

答案 1 :(得分:0)

在我安装了最新版本的python-oauth2之后,它工作了...... Twitter真的应该更新他们的文档。谢谢大家的帮助!