Ошибка Твайтона 401

Есть ли причина, по которой этот код будет постоянно возвращать ошибку 401? Я клонировал его отсюда "https://github.com/purplewove/social-media-apis", чтобы протестировать функциональность twython, но, хотя у меня есть ключи и секреты Twitter, я просто получаю много ошибок 401, а не реальных твитов.

Я привык к Python 3.5, но, похоже, он работает без каких-либо ошибок на стороне клиента в 3.X или 2.X. Я использую пакет Anaconda, так как успешно выполнил «pip install twython».

Код приведен ниже (без изменений из исходного кода):

'''
social-media-apis
=================

currently just a bit of code for keyword searches using twython

to use, make sure twython is installed and then type: 
python filter_terms.py [consumer_key] [consumer_secret] [access_token_key] [access_token_secret] [search_term]

and the script will dump the text from all tweets gleaned from the streaming api containing the search term to standard output. 

find consumer_key, consumer_secret, access_token_key, access_token_secret here: dev.twitter.com/apps
'''

#filter_terms.py

from Stream import Stream
import sys


app_key = sys.argv[1]
app_secret = sys.argv[2]
oauth_token = sys.argv[3]
oauth_token_secret = sys.argv[4]
terms = sys.argv[5:]


stream = Stream(app_key, app_secret, oauth_token, oauth_token_secret)
stream.filter_terms(terms)


#Stream.py

from MyStreamer import MyStreamer

class Stream():
    def __init__(self, app_key, app_secret, oauth_token, oauth_token_secret):
        self.streamer = MyStreamer(app_key, app_secret, oauth_token, oauth_token_secret)

    def filter_terms(self, terms):
        self.streamer.filter_terms(terms)    

#MyStreamer.py

from twython import TwythonStreamer
import sqlite3
import sys
import datetime

class MyStreamer(TwythonStreamer):
    '''a simple streamer that prints the text of a tweet to standard output'''
    def __init__(self, app_key, app_secret, oauth_token, oauth_token_secret):
      TwythonStreamer.__init__(self, app_key, app_secret, oauth_token, oauth_token_secret)

    def on_success(self, data):
        if 'text' in data:
            print (data['text'])

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

    def filter_terms(self, terms):
        '.'.join(terms)
        self.statuses.filter(track = terms)

person user3535074    schedule 07.12.2016    source источник
comment
Убедились ли вы, что ваше приложение не приостановлено или не ограничено на apps.twitter.com?   -  person Paul Lernmark    schedule 27.12.2016


Ответы (1)


Я восстановил ключи и все заработало. Это нужно делать каждый раз при смене машины. Не уверен, в чем была проблема...

person user3535074    schedule 29.12.2016