Ошибка 32 при регистрации в Twitter с помощью Django AllAuth и публикации твита с помощью Tweepy
Я использую Django AllAuth для входа в twitter, и он прекрасно работает и сохраняет токен и секрет токена в таблице Social Account Tokens.
Затем я пытаюсь использовать 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 в этом случае?
Если я, то код будет отлаживаться следующим образом:
# /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')