Tweepy: tweepy.error.tweeperror 'code' 215 'message' 'неверные данные аутентификации.' - PullRequest
0 голосов
/ 05 сентября 2018

Я не уверен, что здесь происходит не так. Следующий код работал до 2 дней назад. Я использую tweepy номер версии 3.6.0 на python3 в jupyter notebook. Теперь, когда я выполняю приведенный ниже код, я получаю сообщение об ошибке TweepError: [{'code': 215, 'message': 'Bad Authentication data.'}]. Что я делаю неправильно? Я уже просматривал похожие посты 1 , 2 , 3 , 4 , 5 и 6 но решения нет. Обратите внимание, я также восстановил ключи, но ошибка сохраняется.

Код:

import tweepy
ckey = 'xxx'
csecret = 'xxx'
atoken = 'xxx'
asecret = 'xxx'

# OAuth process, using the keys and tokens
auth = tweepy.OAuthHandler(ckey, csecret)
auth.set_access_token(atoken, asecret)
# Creation of the actual interface, using authentication
api = tweepy.API(auth)
# collect tweets on #MRT
for tweet in tweepy.Cursor(api.search,q="MRT",count=100,
                           lang="en",rpp=100,
                           since="2017-04-03").items():
  print (tweet.created_at, tweet.text)

При выполнении этого кода возвращаются следующие ошибки,

---------------------------------------------------------------------------
TweepError                                Traceback (most recent call last)
<ipython-input-11-b3e4ffb2d94f> in <module>()
      2 for tweet in tweepy.Cursor(api.search,q="MRT",count=100,
      3                            lang="en",rpp=100,
----> 4                            since="2017-04-03").items():
      5     print (tweet.created_at, tweet.text)

~\Miniconda3\lib\site-packages\tweepy\cursor.py in __next__(self)
     47 
     48     def __next__(self):
---> 49         return self.next()
     50 
     51     def next(self):

~\Miniconda3\lib\site-packages\tweepy\cursor.py in next(self)
    195         if self.current_page is None or self.page_index == len(self.current_page) - 1:
    196             # Reached end of current page, get the next page...
--> 197             self.current_page = self.page_iterator.next()
    198             self.page_index = -1
    199         self.page_index += 1

~\Miniconda3\lib\site-packages\tweepy\cursor.py in next(self)
    106 
    107         if self.index >= len(self.results) - 1:
--> 108             data = self.method(max_id=self.max_id, parser=RawParser(), *self.args, **self.kargs)
    109 
    110             if hasattr(self.method, '__self__'):

~\Miniconda3\lib\site-packages\tweepy\binder.py in _call(*args, **kwargs)
    248             return method
    249         else:
--> 250             return method.execute()
    251 
    252     # Set pagination mode

~\Miniconda3\lib\site-packages\tweepy\binder.py in execute(self)
    232                     raise RateLimitError(error_msg, resp)
    233                 else:
--> 234                     raise TweepError(error_msg, resp, api_code=api_error_code)
    235 
    236             # Parse the response payload

TweepError: Twitter error response: status code = 400

Любой совет будет полезен.

Ответы [ 3 ]

0 голосов
/ 28 мая 2019

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

CONSUMER_KEY = "xxx";

0 голосов
/ 25 июня 2019

У меня была такая же проблема. Восстановление ключей и токенов решило проблему.

0 голосов
/ 05 сентября 2018

Я скопировал ваш код и выполнил его в своей системе, но не смог найти никаких ошибок. Я использую tweepy 3.6.0 и Python 3.5.2. Я внес два изменения в ваш код.

import tweepy
ACCESS_TOKEN = "#####"
ACCESS_TOKEN_SECRET = "#####"
CONSUMER_KEY = "####" 
CONSUMER_SECRET = "#####"

# OAuth process, using the keys and tokens
auth = tweepy.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET)
auth.set_access_token(ACCESS_TOKEN, ACCESS_TOKEN_SECRET)
# Creation of the actual interface, using authentication
api = tweepy.API(auth, wait_on_rate_limit=True, wait_on_rate_limit_notify=True)
# collect tweets on     #MRT
for tweet in tweepy.Cursor(api.search,q="MRT",count=100,
                       lang="en",rpp=100).items():
    print (tweet.created_at, tweet.text)

Обратите внимание на два параметра tweepy.API: wait_on_rate_limit и wait_on_rate_limit_notify. Эти два параметра важны, если вы хотите поддерживать потоковую передачу твитов, поскольку API search дает вам только определенное количество твитов на запрос .

У вас есть TweepError с кодом состояния 400. Согласно документации, там написано:

Запрос был недействительным или не может быть обработан иным образом. Сопутствующее сообщение об ошибке будет объяснено далее. Запросы без аутентификации считаются недействительными и будут давать этот ответ.

Возможное объяснение состоит в том, что ваш twitter API keys больше не аутентифицируется, потому что вы запрашиваете за пределами скорости Твиттера .

Надеюсь, это поможет.

...