使用Python与Twitter API(获取215错误)

时间:2014-11-10 16:29:21

标签: python twitter

我是使用API​​的新手,我正在尝试使用twitter API来搜索推文。我在twitter上关注了开发指南,但它仍然提供了这个json代码。 {u'errors':[{u'message':u'Bad Authentication data',u'code':215}}}

consumer_key = xxx
consumer_secret = yyy
token = base64.b64encode(consumer_key + ":" + consumer_secret)
headers = {'Authorization' : 'Basic ' + token, 'Content-Type' : 'application/x-www-form-urlencoded;charset=UTF-8'}
data = {'grant_type' : 'client_credentials'}
url = 'https://api.twitter.com/oauth2/token'
resp = requests.post(url, data = data, headers=headers)  
d = resp.json()
access_token = 'Bearer ' + d['access_token']

tweets = requests.get('https://api.twitter.com/1.1/search/tweets.json?q=python')

有什么建议吗?

1 个答案:

答案 0 :(得分:2)

如果没有身份验证,Twitter API不允许访问,您可能会遇到凭据问题,请查看解释AUTHENTICATING Twitter API的article

还有一件事,尝试使用Tweepy,它是一个易于使用的Python库,用于访问Twitter API。

以下是如何使用它的快速示例。您似乎正在获取与Python相关的所有推文。

了解更多details

import tweepy 
from tweepy import Stream
from tweepy import OAuthHandler
from tweepy.streaming import StreamListener
import json


#Use your keys
consumer_key = '...'
consumer_secret = '...' 
access_token = '...'
access_secret = '...'


auth = OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_secret)


class TweetListener(StreamListener):
    def on_status(self, status):
      print "tweet " + str(status.created_at) +"\n"
      print status.text + "\n"
      # You can dump your tweets into Json File, or load it to your database

stream = Stream(auth, TweetListener(), secure=True, )
t = u"#python" # You can use different hashtags 
stream.filter(track=[t])