输入:
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}]}
有人知道为什么会发生这种错误吗?
答案 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密钥/访问令牌,您应该全部设置好!