2017-12-06 30 views
0

私はオンライン版から使用しているmendeleyアカウントを持っています。私はユーザIDとクライアント秘密を作成し、それを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) 

私はここに詰め込まれており、私がmendeley fomのAPIに持っているデータまたは記事にアクセスする方法を知らない。どんな助力も高く評価されます。

答えて

0

クライアントクレデンシャルフロー(OAuthの用語)を使用しています。この流れは、ログインするユーザーを必要としない

しかし、それだけで リソースの限られたセット(群衆ソースの文書の読み取り専用Mendeley カタログ)へのアクセスを提供します:the docsから引用。

質問からの2回の呼び出しは、プライベート(ユーザー)情報であり、そのために失敗します。

一方、次のように動作するはずです:。

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

あなたが個人情報にアクセスしたい場合は、ログインするユーザーが必要になりますThis questionは役立つはずです。

関連する問題