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.

размещаю на случай, если это поможет кому-то еще.

https://docs.authlib.org/en/latest/client/oauth1.html

Вернуться на верх