Я делаю это точно так же, как другой пользователь SO didBad ошибка данных аутентификации при получении списка последователей в Python с Tweepy/Twython
for follower in api.followers_ids('twitter'):
print api.get_user(follower).screen_name
Но получаю следующее сообщение об ошибке:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/lib/python2.7/dist-packages/tweepy/binder.py", line 185, in _call
return method.execute()
File "/usr/local/lib/python2.7/dist-packages/tweepy/binder.py", line 168, in execute
raise TweepError(error_msg, resp)
tweepy.error.TweepError: [{'message': 'Bad Authentication data', 'code': 215}]
Потоковая работа просто найти, поэтому я предполагаю, что процесс аутентификации прошел нормально.
Эта проблема не ограничивается Tweepy, например, я попытался Twython
t = Twython(app_key=consumer_key,
app_secret=consumer_secret,
oauth_token=access_token,
oauth_token_secret=access_token_secret)
И получил очень похожую ошибку:
File "downloader.py", line 14, in <module>
auth = t.get_authentication_tokens()
File "/usr/local/lib/python2.7/dist-packages/twython/api.py", line 260, in get_authentication_tokens
raise TwythonAuthError(response.content, error_code=response.status_code)
twython.exceptions.TwythonAuthError: Twitter API returned a 401 (Unauthorized), Failed to validate oauth signature and token
Я тройной проверил мои ключи и жетоны и уверен, они в порядке. В чем заключается корень проблемы, которую я испытываю?
p.s. Я думаю, что моя проблема глубже. Я не могу получить пример кода для работы Twython. Следующий код:
t = Twython(app_key=consumer_key,
app_secret=consumer_secret,
oauth_token=access_token,
oauth_token_secret=access_token_secret)
try:
search_results = t.search(q='WebsDotCom', count=50)
except TwythonError as e:
print e
for tweet in search_results['statuses']:
print 'Tweet from @%s Date: %s' % (tweet['user']['screen_name'].encode('utf-8'), tweet['created_at'])
print tweet['text'].encode('utf-8'), '\n'
производит
File "downloader.py", line 19, in <module>
search_results = t.search(q='WebsDotCom', count=50)
File "/usr/local/lib/python2.7/dist-packages/twython/endpoints.py", line 130, in search
return self.get('search/tweets', params=params)
File "/usr/local/lib/python2.7/dist-packages/twython/api.py", line 219, in get
return self.request(endpoint, params=params, version=version)
File "/usr/local/lib/python2.7/dist-packages/twython/api.py", line 213, in request
content = self._request(url, method=method, params=params, api_call=url)
File "/usr/local/lib/python2.7/dist-packages/twython/api.py", line 134, in _request
response = func(url, **requests_args)
File "/usr/local/lib/python2.7/dist-packages/requests/sessions.py", line 254, in get
return self.request('get', url, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/requests/sessions.py", line 241, in request
r.send(prefetch=prefetch)
File "/usr/local/lib/python2.7/dist-packages/requests/models.py", line 521, in send
r = self.auth(self)
File "/usr/local/lib/python2.7/dist-packages/requests_oauthlib/core.py", line 58, in __call__
if is_form_encoded or extract_params(r.body):
AttributeError: 'Request' object has no attribute 'body'
Я думаю, что это как-то связано с OAuth, но обновление requests_oauthlib не помогло.
О, мой плохой, я не был достаточно ясен: я хочу просканировать твиттер для небольшой части своего социального графа. Я мог бы сделать это с помощью wget, запросов, urllib или другого инструмента, но лучше подумать о твиттере. – Moonwalker
Я думаю, что моя проблема с Twython более глубока и как-то связана с запросами_oauthlib. Не могли бы вы взглянуть на обновленную версию вопроса? Я был бы очень признателен, я весь день ударяю головой о стену ... – Moonwalker
Ваша версия запросов старше запросов-oauthlib. Попробуйте обновить его. –