Есть ли рабочая библиотека OAuth для Python 3?

Какая самая последняя форма Oauth для Python 3?

Я пытаюсь создать screener запаса, используя мой API-интерфейс брокера, который использует Oauth. Большая часть информации, которую я нахожу, устарела или противоречит друг другу. Я видел следующие ссылки:

Oauth - Кажется, это оригинал, теперь устаревший. Я получаю сообщение об ошибке "Объект модуля" не имеет атрибута "Потребитель"

Oauth2 - более новая версия, по-видимому также устаревшая? Один из наиболее употребительных онлайн. Глюки в pip/не могут понять, как его установить.

Oauthlib - IIRC, претендует на новую замену Oauth и Oauth2

Rauth.OAuth2Service - Также возможно замена Oauth и Oauth2?

Запросы -?

Oauth_hook -?

pyoauth2 - Я получаю сообщение об отсутствии модуля с именем "клиент" в pyoauth2 init.

Никто из них не работает, как ожидалось, и я чувствую, что это связано с низкой поддержкой Oauth 3. Вы получили OAuth для работы на Python 3? Если да, то как вы это сделали?

Ответ 1

Похоже, Requets_oauthlib работает. Здесь код, который я использовал, работает в Python 3. Я отправляю его, потому что в большинстве примеров кода я нашел используемые форматы, которые я не мог получить.

from requests_oauthlib import OAuth1    

client_key = ''
client_secret = ''
resource_owner_key = ''
resource_owner_secret = ''

def query(queryurl):
        headeroauth = OAuth1(client_key, client_secret, resource_owner_key,
        resource_owner_secret, signature_type = 'auth_header')

        return requests.get(queryurl, auth = headeroauth)

query('http://website.com')

Ответ 2

Автор rauth здесь: rauth - это клиентская библиотека, которая в настоящее время официально не поддерживает Python 3.

Однако мы работаем над этим, и там активная ветка (метко названная "python-3" ) в GitHub, которая работает. Вы можете использовать его, но имейте в виду, что ситуация может немного измениться, когда мы официально выпустим поддержку для него позже. С учетом сказанного было бы здорово, если бы люди в реальном мире проверили его, чтобы мы могли вносить изменения в экосистему Python 3.

Также обратите внимание: oauthlib не является заменой для rauth, а не клиентской библиотеки. Он пытается быть общим решением, как и python-oauth2, но он не предоставляет клиента, в отличие от python-oauth2.