twython возвращает ошибку 401 http несанкционированным - PullRequest
0 голосов
/ 11 мая 2018

Мой вопрос о twython, который возвращает ...

<code>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
\ n \ n \ 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')

1 Ответ

0 голосов
/ 11 мая 2018

Вы установили переменные 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

...