使用Tweepy的Twitter Streaming API拒绝oauth

cod*_*dle 5 python twitter tweepy twitter-streaming-api

我正在尝试访问我之前使用过的Twitter流,而不正确地使用Tweepy.现在我了解了如何使用Tweepy,我编写了以下Stream.py模块.当我运行它时,我收到错误代码401,它告诉我我的身份验证已被拒绝.但我之前使用相同的消费者令牌和秘密工作.有任何想法吗?

from tweepy.streaming import StreamListener
from tweepy import OAuthHandler
from tweepy import Stream
from tweepy import TweepError
from tweepy import error

#Removed. I have real keys and tokens
consumer_key = "***" 
consumer_secret = "***"
access_token="***"
access_token_secret="***"

class CustomListener(StreamListener):
    """ A listener handles tweets are the received from the stream. 
        This is a basic listener that just prints received tweets to stdout."""

    def on_status(self, status):
        # Do things with the post received. Post is the status object.
        print status.text
        return True

    def on_error(self, status_code):
        # If error thrown during streaming.
        # Check here for meaning: 
        # https://dev.twitter.com/docs/error-codes-responses
        print "ERROR: ",; print status_code
        return True

    def on_timeout(self):
        # If no post received for too long
        return True

    def on_limit(self, track):
        # If too many posts match our filter criteria and only a subset is
        # sent to us
        return True

    def filter(self, track_list):
        while True:
            try:
                self.stream.filter(track=track_list)
            except error.TweepError as e:
                raise TweepError(e)

    def go(self):
        listener = CustomListener()
        auth = OAuthHandler(consumer_key, consumer_secret)
        self.stream = Stream(auth,listener,timeout=3600)
        listener.filter(['LOL'])

if __name__ == '__main__':
    go(CustomListener)
Run Code Online (Sandbox Code Playgroud)

cod*_*dle 3

对于任何碰巧遇到同样问题的人,我应该在初始化身份验证后添加此行:

auth.set_access_token(access_token, access_token_secret)
Run Code Online (Sandbox Code Playgroud)