【问题标题】:twython returning 401 http error unauthorizedtwython 未经授权返回 401 http 错误
【发布时间】:2018-10-21 09:19:28
【问题描述】:

我的问题是关于返回的 twython...

401 b'<html>\\n<head>\\n<meta http-equiv="Content-Type" content="text/html; 
charset=utf-8"/>\\n<title>Error 401 
Unauthorized</title>\n</head>\n<body>\n<h2>HTTP ERROR: 401</h2>\n<p>Problem 
accessing \'/1.1/statuses/filter.json\'. Reason:\n<pre>    
Unauthorized</pre>\n</body>\n</html>\n'

我已经尝试重新生成消费者密钥和秘密以及访问令牌和秘密,但它仍然返回相同的东西......下面是我的代码

tweets = []

class MyStreamer(TwythonStreamer):

    def on_success(self, data):
        """ Stores tweet data as dict """

        # Collect only English Tweets
        if data['lang'] == 'en':
            tweets.append(data)
            print("Received Tweet #", len(tweets))

        # Stop when 1000 tweets are collected
        if len(tweets) >= 1000:
            self.disconnect()

    def on_error(self, status_code, data):
        print(status_code, data)
        self.disconnect()   

stream = MyStreamer(CONSUMER_KEY, CONSUMER_SECRET,
                    ACCESS_TOKEN, ACCESS_TOKEN_SECRET)

# Starts consuming public Statuses that contain the keyword 'cola'
stream.statuses.filter(track='cola')

【问题讨论】:

    标签: python-3.x api twitter twython


    【解决方案1】:

    您是否设置了变量 CONSUMER_KEY、CONSUMER_SECRET... ? 此外,您应该过滤流中的语言。这是代码。只需将 '***' 替换为您在 https://apps.twitter.com/ 获得的令牌即可:

    from twython import TwythonStreamer
    
    tweets = []
    
    class MyStreamer(TwythonStreamer):
    
        def on_success(self, data):
    
            if 'text' in data:
                tweets.append(data)
                print(data['text'])
    
            if len(tweets) >= 10:
                self.disconnect()            
    
        def on_error(self, status_code, data):
            print(status_code)
            self.disconnect()
    
    APP_KEY = '***'
    APP_SECRET = '***'
    OAUTH_TOKEN = '***'
    OAUTH_TOKEN_SECRET = '***'
    
    stream = MyStreamer(APP_KEY, APP_SECRET, OAUTH_TOKEN, OAUTH_TOKEN_SECRET)
    stream.statuses.filter(track='cola', language='en')
    

    这可能有助于流参数:https://developer.twitter.com/en/docs/tweets/filter-realtime/guides/basic-stream-parameters

    【讨论】:

    • 所以应用程序密钥和秘密是消费者密钥和秘密?? oauth 令牌是访问令牌和秘密?因为它给了我 401 为什么我未经授权?
    • APP_KEY 是“Consumer Key (API Key)” - APP_SECRET 是“Consumer Secret (API Secret)” - OAUTH_TOKEN 是“Access Token” - OAUTH_TOKEN_SECRET 是 apps.twitter.com 的“Access Token Secret”。尝试再生。
    • 我也重新生成了密钥,但仍然出现相同的错误...他们是否更改了有关 API 密钥使用的一些政策??
    【解决方案2】:

    我有同样的问题。对我有用的是:

    转到开发门户并生成“Access Token & Secret”并将它们保存为 OAUTH_TOKEN 和 OAUTH_TOKEN_SECRET。

    【讨论】:

      猜你喜欢
      • 2014-06-24
      • 2014-02-26
      • 2017-12-20
      • 2012-05-30
      • 2023-03-09
      • 1970-01-01
      • 1970-01-01
      • 2021-05-04
      • 2016-12-24
      相关资源
      最近更新 更多