Ошибка аутентификации Mendeley API Code flow Authorization - PullRequest
0 голосов
/ 07 мая 2020

Я следовал этому руководству по использованию python sdk.

Использование потока кода авторизации:

mendeley = Mendeley(client_id, client_secret=client_secret, redirect_uri=redirect_uri)
auth = mendeley.start_authorization_code_flow()

# The user needs to visit this URL, and log in to Mendeley.
login_url = auth.get_login_url()

Я использовал ChromeDriver, чтобы указать свои учетные данные в Mendeley login_url

from selenium import webdriver
browser= webdriver.Chrome(chromedriver)
browser.get(login_url)

#sumbit the data
submit_bt = browser.find_element_by_id('bdd-elsPrimaryBtn')
submit_bt.click()

, затем я перенаправляюсь на mi redirect_url и получаю код

Я делаю почтовый запрос, предоставляя данные приложения mi

oauth_url = 'https://api.mendeley.com/oauth/token'

    data={'grant_type': 'authorization_code',
         'code': app_code,
         'redirect_uri': redirect_uri,
         'client_id': client_id,
         'client_secret': client_secret}

    r = post(oauth_url, data=data

Я получаю хороший ответ <Response [200]>

, а затем следующий шаг - аутентификация

# After logging in, the user will be redirected to a URL, auth_response.
session = auth.authenticate(auth_response)

, но я получаю эту ошибку

...C:\Programming\Anaconda\lib\urllib\parse.py in <genexpr>(.0)
    105 def _decode_args(args, encoding=_implicit_encoding,
    106                        errors=_implicit_errors):
--> 107     return tuple(x.decode(encoding, errors) if x else '' for x in args)
    108 
    109 def _coerce_args(*args):

AttributeError: 'CaseInsensitiveDict' object has no attribute 'decode'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...