用于访问Twitter数据和检索趋势的应用程序

时间:2014-04-08 10:56:51

标签: json twitter twitter-oauth tweepy

输入:

CONSUMER_KEY =  '3zu*************BClmA'
CONSUMER_SECRET = 'pQ************vgJmrysYYWGwSSwA0HzFvB'
OAUTH_TOKEN = '2431620*****************Z9kOlXGWgj9U9hJNSZlAAP'
OAUTH_TOKEN_SECRET = 'a**************9j7aJsXqLmOcsbm'
auth = twitter.oauth.OAuth(OAUTH_TOKEN, OAUTH_TOKEN_SECRET,
                           CONSUMER_KEY, CONSUMER_SECRET)
twitter_api = twitter.Twitter(auth=auth)
#print twitter_api




WORLD_WOE_ID = 1
US_WOE_ID = 23424977


world_trends = twitter_api.trends.place(_id=WORLD_WOE_ID)
us_trends = twitter_api.trends.place(_id=US_WOE_ID)

print world_trends
print
print us_trends

输出:

<twitter.api.Twitter object at 0x7fae2a3fa750>
   Traceback (most recent call last):
  File "tw1.py", line 22, in <module>
    world_trends = twitter_api.trends.place(_id=WORLD_WOE_ID)
  File "/usr/local/lib/python2.7/dist-packages/twitter/api.py", line 239, in __call__
    return self._handle_response(req, uri, arg_data, _timeout)
  File "/usr/local/lib/python2.7/dist-packages/twitter/api.py", line 270,in              handle_response
    raise TwitterHTTPError(e, uri, self.format, arg_data)
twitter.api.TwitterHTTPError: Twitter sent status 401 for URL: 1.1/trend/place.json           using parameters: (id=1&oauth_consumer_key=3zuNBJp5pSNsL2TQdBClmA&oauth_nonce=2012443237312860371&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1396954063&oauth_token=2431620524-S7HkBF47N49xLiqKlZ9kOlXGWgj9U9hJNSZlAAP&oauth_version=1.0&oauth_signature=7%2FSvFNAnLw9xToRMxr97d9eaPL4%3D)
details: {"errors":[{"message":"Could not authenticate you","code":32}]}

有人知道为什么会发生这种错误吗?

1 个答案:

答案 0 :(得分:0)

错误401表示请求未经Twitter Error Codes & Responses页面授权。 authentication有两种类型 - 特定于应用程序和OAuth。您正在使用OAuth:

auth = twitter.oauth.OAuth(OAUTH_TOKEN, OAUTH_TOKEN_SECRET,
                           CONSUMER_KEY, CONSUMER_SECRET)

这意味着您的请求不正确或您的身份验证凭据。再看一下错误代码&amp;上面链接的回复页面,错误代码为32,如您所见:

details: {"errors":[{"message":"Could not authenticate you","code":32}]}

表示您的身份验证凭据可能存在问题。首先,检查以确保您的应用程序具有基于您尝试执行的操作的适当权限(即读/写)。你似乎只是获得趋势,所以应该没问题。尝试在Twitter app page上的应用程序页面上重新生成API密钥/访问令牌,您应该全部设置好!