2

我试图通过使用 Twitter 在https://dev.twitter.com/docs/api/1.1/get/trends/placeGET trends/places提供的 API来发送请求以检索前 10 个热门话题的列表。这是Python中相同的代码:

import twitter

CONSUMER_KEY = ' XXXXXXXXXX'
CONSUMER_SECRET ='XXXXXXXXXXXX'
OAUTH_TOKEN = ' XXXXXXXXX'
OAUTH_TOKEN_SECRET = ' XXXXXXX'

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

twitter_api = twitter.Twitter(auth=auth)

WORLD_WOE_ID = 1

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

print world_trends

当我只尝试打印“twitter_api”时,我得到以下输出:

<twitter.api.Twitter object at 0x39d9b50>

这意味着我已成功使用 OAuth 凭据获得授权以查询 Twitter 的 API。现在,在我运行上面的代码之后,这是我得到的错误:

TwitterHTTPError: Twitter sent status 400 for URL: 1.1/trends/place.json using parameters: (id=1&oauth_consumer_key=%201FqhG77x7XaVjx6a1lnm2ip8G&oauth_nonce=3628940350753944768&oauth_signature_method=HMAC-SHA1&oauth_timestamp=1399534257&oauth_token=%20337142662-QWaMBk6MCe5vM6to5tw3AR3cHChYc0e0yUnEB7lh&oauth_version=1.0&oauth_signature=%2BD0ZzXV8cMuc5S%2B9UKRJ85xF1wY%3D)
details: {"errors":[{"message":"Bad Authentication data","code":215}]}

从错误消息中,我认为该错误与错误的语法有关(因为我收到了 HTTP 400 错误消息)。此外,当我尝试使用https://dev.twitter.com/docs/api/1.1/get/trends/place上提到的示例 URL 时,我仍然收到以下错误: {"errors":[{"message":"Bad Authentication data","code":215}]}

代码似乎有什么问题?我试图找到错误的根本原因,但未能找到任何重要的线索。

4

3 回答 3

2

好的,所以我尝试阅读文档。尝试浏览模块的源代码,但找不到任何可疑之处。和几个人谈过,没有运气。然后今天,我尝试重新生成我的身份验证密钥。该程序现在可以成功运行!我真的不知道如何重新生成我的密钥解决了这个错误,但我确实看到很多开发人员得到了完全相同的错误,没有人真正知道出了什么问题。因此,如果您是其中之一,只需重新生成您的身份验证密钥,这应该可以使您的代码正常工作。

于 2014-05-14T09:17:14.140 回答
0

使用以下内容检查您的位置 ID 并使用该 ID。

http://woeid.rosselliot.co.nz/lookup/

于 2019-05-06T08:21:31.200 回答
0

我遇到了同样的问题。如果您是第一次这样做,我强烈建议您重新生成使用者密钥、密钥以及访问令牌。通过一些研究,我发现情况总是相同的。

于 2017-06-01T23:31:25.597 回答