2017-12-06 13 views
0

온라인 버전에서 사용하고있는 mendeley 계정이 있습니다. 나는 사용자 아이디와 클라이언트 비밀 번호를 생성하고 그것을 config.yml 파일에 저장하고 그것을 사용하여 인증했다. 나는이 코드는 잘 작동 their websitePython Mendeley SDK API가 인증시 오류를 반환합니다.

import yaml 
from mendeley import Mendeley 

with open('config.yml') as f: 
    config = yaml.load(f) 

REDIRECT_URI = 'http://localhost:5000/oauth' 

mendeley = Mendeley(config['clientId'], config['clientSecret'], REDIRECT_URI) 
auth = mendeley.start_client_credentials_flow() 
session = auth.authenticate() 

에 사용할 수있는 아래의 코드를 사용하고 있는데 오류가 없어. 그러나 example에있는 명령을 사용하여 데이터에 액세스하려고하면 오류가 발생합니다. 예를

>> print (session.profiles.me.display_name) 

mendeley.exception.MendeleyApiException: The Mendeley API returned an error (status: 400, message: No userid found in auth token) 

>> for document in session.documents.iter(): 
    print document.title 

mendeley.exception.MendeleyApiException: The Mendeley API returned an error (status: 403, message: Access to this document is not allowed) 

를 들어 내가 여기 갇혀 오전 멘델 리 FOM에 자사의 API를 내가 가지고있는 데이터 나 문서에 액세스하는 방법을 모르겠어요. 어떤 도움을 주시면 감사하겠습니다.

답변

0

클라이언트 자격 증명 플로우 (OAuth의 용어)를 사용하고 있습니다. the docs에서 인용 :.

이 흐름은 그러나, 그것은 단지 자원의 제한된 (군중 소스 문서의 읽기 전용 멘델 리 카탈로그)에 대한 액세스를 제공합니다 사용자가 로그인 할 필요가 없습니다.

귀하의 질문에 대한 두 건의 호출은 개인 (사용자) 정보이므로 실패하게됩니다. 한편

는 다음 작동합니다 : 당신이 개인 정보에 액세스하려는 경우 로그인하는 사용자가 필요합니다

print session.catalog.by_identifier(doi='10.1371/journal.pmed.0020124', view='stats').reader_count 

This question는 도움이 될 것입니다..