Tweepy流返回错误401

时间:2018-01-14 20:10:23

标签: python twitter streaming tweepy

我正在尝试使用tweepy API流,但我一直收到错误401.我在网上寻找线索,我找到的每个帖子都说是因为时区设置。那可能不是我的情况。

在我的场景中,我可以与Twitter API(verify_credentials)进行通信,但是当我创建一个Stream对象并使用filter方法触发它时,我不断收到错误401.这是我的监听器上课:

class MyStreamListener(tweepy.StreamListener):
    def on_status(self, status):
        print(status.text)

    def on_error(self, err):
        print(err)

这是我正在测试的代码:

auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_token_secret)
api = tweepy.API(auth)
listener = MyStreamListener()
myStream = tweepy.Stream(auth=api.auth, listener=listener)
401

api.verify_credentials()
User(_api=<tweepy.api.API object at 0x02E30DF0>, _json={'id':...})

如您所见,api.verify_credentials()成功。但是在创建流时,我会收到错误401(根据twitter的文档,未经授权和其他方案)。

来自tweepy模型的更多调试输出:

2018-01-14 20:51:43,025 requests_oauthlib.oauth1_auth -  DEBUG: Updated url: https://stream.twitter.com/1.1/statuses/filter.json?delimited=length
2018-01-14 20:51:43,025 requests_oauthlib.oauth1_auth -  DEBUG: Updated headers: {'Content-Type': 'application/x-www-form-urlencoded', 'Content-Length': '17', 'Authorization': 'OAuth oauth_nonce="xxx", oauth_timestamp="1515955903", oauth_version="1.0", oauth_signature_method="HMAC-SHA1", oauth_consumer_key="xxx", oauth_token="xxx-xxx", oauth_signature="xxx"'}
2018-01-14 20:51:43,025 requests_oauthlib.oauth1_auth -  DEBUG: Updated body: 'track=python%2Clive'
2018-01-14 20:51:43,026 urllib3.connectionpool -  DEBUG: Starting new HTTPS connection (1): stream.twitter.com
2018-01-14 20:51:44,675 urllib3.connectionpool -  DEBUG: https://stream.twitter.com:443 "POST /1.1/statuses/filter.json?delimited=length HTTP/1.1" 401 283
2018-01-14 20:51:44,676 api.twitter -  ERROR: error occurred while listening for new statuses: err=401

到目前为止,我已经尝试过:

  • 允许完全访问(读取,写入和直接消息)
  • 生成新密钥
  • 手动设置我的Windows 10时区
  • 自动配置时区
  • 已在Twitter上验证我的时区同步

我正在使用Python 3.6.4和Tweepy 3.5

这是非常基本的情况。任何建议都非常受欢迎。

1 个答案:

答案 0 :(得分:2)

我很惭愧,但这是由于时区问题。我的Windows配置了自动时间,但是当我查看Date&amp;时间 - &gt;上网时间,我注意到与windows ntp服务器同步存在问题。

我配置了其他东西,现在按下更新,让它工作,我的代码现在正常工作。因此,如果您遇到此问题,VERIFY windows ntp服务器也可以访问并为您工作。