Django AllAuth с Twitter Ошибка: "Нет доступа к частным ресурсам на api.twitter.com".
Я пытаюсь настроить Django AllAuth для входа в Twitter. Когда пользователь аутентифицируется в Twitter и перенаправляется на мой сайт, Django AllAuth выдает ошибку "No access to private resources at api.twitter.com", и я совсем запутался. У меня есть следующие настройки в моем settings.py:
SOCIALACCOUNT_PROVIDERS = {
"twitter": {
# From https://developer.twitter.com
"APP": {
"client_id": os.environ["TWITTER_API_KEY"],
"secret": os.environ["TWITTER_API_SECRET"],
}
},
}
Мое приложение имеет следующие права привилегий на портале разработчика:
- OAuth1 Конечные точки
- OAuth2 конечные точки
- Электронная почта пользователя
- Чтение твитов и профилей
Есть идеи, почему это может происходить? Заранее спасибо!
Причина этого в том, что ваша учетная запись разработчика не имеет доступа к API версии 1.1. Для этого вам необходимо подать заявку на получение уровня доступа к API 'Elevated', как описано здесь: https://developer.twitter.com/en/docs/twitter-api/getting-started/about-twitter-api
Я получал точно такую же ошибку, как и вы, а затем попробовал повторить ее на старой учетной записи разработчика, у меня есть, которая была включена в Elevated, и все начало работать для меня. (Любая учетная запись разработчика, созданная до ноября 2021 года, автоматически имеет доступ к Elevated)
У меня все еще другая проблема после прохождения процесса создания заголовков и хэширования.
я использовал эту библиотеку, которая упрощает процесс OAuth1 и, я думаю, OAuth2, с ключом и секретом потребителя и без необходимости использования nonce или временных меток.
они также рассмотрели некоторые примеры API twitter, которые помогли мне для другого API.
размещаю на случай, если это поможет кому-то еще.