2016-06-21 4 views
1

Код за последние шесть месяцев работал отлично, чтобы получить Подписчики некоторых учетных записей Twitter. Внезапно этим утром код перестает работать, возвращая «Ошибка 401: Несанкционированный».Python Tweepy for Twitter API возвращает ошибку 401: Unauthorized

Я проверил свое приложение на dev.twitter.com, оно по-прежнему действует. Я обновил Tweepy. Не знаю, почему это больше не работает.

Код не работает в строке 'Cursor.next'.

import tweepy 
import mysql.connector 
import time 

consumer_key = 'secretkey' 
consumer_secret = 'secretsecret' 
access_token = 'secrettoken' 
access_token_secret = 'secrettokensecret' 
auth = tweepy.OAuthHandler(consumer_key, consumer_secret) 
auth.set_access_token(access_token, access_token_secret) 



for twit_name in twit_name_array: 
api = tweepy.API(auth) 
t0= time.clock() 

data = api.rate_limit_status() 
user_followers_remaining = data['resources']['followers']['/followers/ids']['remaining'] 
print(user_followers_remaining) 
id_i = twit_name[1] 

countpage = 0 
countx = 0 

def limit_handled(cursor): 
    while True: 
     data = api.rate_limit_status() 
     user_followers_remaining = data['resources']['followers']['/followers/ids']['remaining'] 

     if user_followers_remaining>0: 
      try: 
       yield cursor.next() 
      except BaseException as e: 
       print('failed_on_CURSOR_NEXT', str(e)) 
       global api 
       api = tweepy.API(auth) 
       try: 
        yield cursor.next() 
       except BaseException as e: 
        print('failed_on_CURSOR_NEXT_2', str(e)) 
        break 
     else: 
      for min_remain in range(-3, 0): 
       print('##### TIMEOUT ##### ----- Out of queries, waiting ' + str(min_remain*5) + 'min') 
       time.sleep(5*60) 
+0

Возможно, вам нужно снова зарегистрироваться в OAuth, обновить его? – advance512

+0

Я пробовал это. Я также пробовал некоторые другие запросы (tweet_get) или (timeline), ни один из них больше не работает ... – ylnor

+0

Есть ли обновление по этой проблеме? Я пытался устранить аналогичную проблему в течение некоторого времени –

ответ

0

Как уже упоминалось @ advance512, мне пришлось снова войти в систему, чтобы решить эту проблему. Следующий фрагмент кода сделал трюк:

auth = tweepy.OAuthHandler(consumer_key, consumer_secret) 
auth.set_access_token(access_token, access_token_secret) 
api = tweepy.API(auth) 

def limit_handled(cursor): 
    while True: 
     try: 
      yield cursor.next() 
     except BaseException as e: 
      print('failed_on_CURSOR_NEXT', str(e)) 
      time.sleep(5) 
      global api 
      api = tweepy.API(auth) 
      yield cursor.next() 

for followers in limit_handled(tweepy.Cursor(api.followers_ids, id = id_i).pages()): 
    for fll in followers: 
     process_follower(fll) 
+0

К сожалению, это не было для меня решением. Но спасибо за предоставление ответа, это может помочь людям, имеющим проблемы с twitter API :) –

 Смежные вопросы

  • Нет связанных вопросов^_^