Ошибка 32 при входе в Twitter с помощью Django AllAuth и публикации твита с помощью Tweepy

#python #django #tweepy #django-allauth

Вопрос:

Я использую Django AllAuth для входа в Twitter, и он отлично работает, сохраняя токен и секрет токена в таблице токенов социальной учетной записи.

Затем я пытаюсь использовать Tweepy для отправки твита от имени пользователя (да, область действия позволяет это).

Но когда я пытаюсь отправить твит, я получаю tweepy.error.TweepError: [{'code': 32, 'message': 'Could not authenticate you.'}]

Вот код авторизации:

 def auth_tweepy(user):  twitter_auth_keys = settings.TWITTER_AUTH_KEYS  auth = tweepy.OAuthHandler(  twitter_auth_keys['consumer_key'],  twitter_auth_keys['consumer_secret']  )  user_auth = SocialToken.objects.get(account__user=user, account__provider='twitter')  auth.set_access_token(  user_auth.token,  user_auth.token_secret  )  return tweepy.API(auth)  def send_tweet(tweet_content):  api = auth_tweepy(user)   try:  api.update_status(tweet_content)  except tweepy.TweepError as error:  if error.api_code == 187:  print('duplicate message')   

Я не думаю, что срок действия токенов истек, я ТОЛЬКО что вошел в систему. Есть идеи, что может вызвать ошибку 32 в этом случае?

Ответ №1:

Если я, код будет отлаживаться вот так:

 # /usr/bin/env python3.8 # f'{a = }' requires Python3.8   def auth_tweepy(user):  twitter_auth_keys = settings.TWITTER_AUTH_KEYS  print('1' * 20, f'{twitter_auth_keys = }')  auth = tweepy.OAuthHandler(  twitter_auth_keys['consumer_key'],  twitter_auth_keys['consumer_secret']  )  user_auth = SocialToken.objects.get(account__user=user, account__provider='twitter')  print('2' * 20, f'{user = };{user_auth = }')  auth.set_access_token(  user_auth.token,  user_auth.token_secret  )  return tweepy.API(auth)  def send_tweet(tweet_content):  api = auth_tweepy(user)  print('3'*20, f'{api = };{tweet_content = }')   try:  api.update_status(tweet_content)  except tweepy.TweepError as error:  if error.api_code == 187:  print('duplicate message')