我遇到了新的Twitter API问题:v1.0工作没有问题,但是如果我将URL更改为v1.1,我会一直收到错误“400 Bad request”(与Firebug一起看到)。
示例:
https://api.twitter.com/1/statuses/user_timeline.json?screen_name=twitterapi
这就像一个魅力,一切都像一个例外。
只需将URL更改为.../1.1/...
,我就会收到错误的请求错误,甚至会收到JSON错误响应甚至是某些内容。
https://api.twitter.com/1.1/statuses/user_timeline.json?screen_name=twitterapi
注意:它不能是速率限制,因为我第一次访问了URL。
答案 0 :(得分:2)
https://api.twitter.com/1.1/statuses/user_timeline.json?screen_name=twitterapi将我重定向到https://api.twitter.com/1/statuses/user_timeline.json?screen_name=twitterapi
看起来1.1
与1
UPD: Looks like this is a rate limit(1.1
链接为我工作2小时前)。即使您是第一次点击API页面,您的某些应用程序(descktop或mobile)也可以使用API方法。
UPD2:错误请求表示您未进行自动调整(https://dev.twitter.com/docs/error-codes-responses,https://dev.twitter.com/docs/auth/oauth#user-context)。所以你需要获得用户上下文
答案 1 :(得分:1)
在使用v1.1 apis之前,您需要使用oauth进行身份验证和授权 这是与python tweepy一起使用的东西 - 从用户时间线获取状态
def twitter_fetch(screen_name = "BBCNews",maxnumtweets=10):
'Fetch tweets from @BBCNews'
# API described at https://dev.twitter.com/docs/api/1.1/get/statuses/user_timeline
consumer_token = '' #substitute values from twitter website
consumer_secret = ''
access_token = ''
access_secret = ''
auth = tweepy.OAuthHandler(consumer_token,consumer_secret)
auth.set_access_token(access_token,access_secret)
api = tweepy.API(auth)
#print api.me().name
#api.update_status('Hello -tweepy + oauth!')
for status in tweepy.Cursor(api.user_timeline,id=screen_name).items(2):
print status.text+'\n'
if __name__ == '__main__':
twitter_fetch('BBCNews',10)
答案 2 :(得分:0)
对我来说,原因是附在推文上的媒体的大小。如果它是<1.2MB它经历了OK,但如果它结束了,我每次都会得到400错误。
奇怪的是,Twitter认为推文限制为3MB https://twittercommunity.com/t/getting-media-parameter-is-invalid-after-successfully-uploading-media/58354