Mendeley API-Python SDK-可能更改文档的详细信息吗?

时间:2019-01-23 09:43:02

标签: python api sdk mendeley

我在研究中经常使用Mendeley。我想编辑Mendeley客户目录中文档的“用户标签”。具体来说,我想在该字段中添加期刊的声誉(以H因子或影响因子的形式)。我已经成功设置了OAuth2身份验证,并且能够检索目录中的所有文档。但是,我无法更改详细信息/将其同步回去。

您知道使用Mendeley API是否有可能?

我在API文档中找不到类似于set或sync的方法。

from mendeley import Mendeley

# I've changed the authentication details of my script (of course)
client_id = ****
client_secret = "abcdefghijklmnop"

redirect_uri = "http://localhost:8080/someTest"

# These values should match the ones supplied when registering your application
mendeley = Mendeley(client_id, redirect_uri=redirect_uri)

auth = mendeley.start_implicit_grant_flow()

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

res = requests.post(login_url, allow_redirects=False, data={
    'username': 'mymail@myprovider.net',
    'password': 'somePsasword?!'
})

auth_response = res.headers['Location']

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

# print(session.files.list().items)
for document in session.documents.iter(view='tags'):
    print(document.title)

a = session.documents.get("5982d0ce-0425-3548-a063-519620c17886", view='tags')
a.tags = "TESTETETSETEST"

另一种选择是只在PC上本地更改目录,但是我无法在mendeley目录中找到此文件/数据库

编辑:

我通过将循环更改为以下内容,尝试了API中提到的update()方法。暂时没有解决我的问题

for document in session.documents.iter(view='tags'):
    print(document.tags)
    document.tags = ["Test"]
    document.update()

1 个答案:

答案 0 :(得分:0)

我对Mendeley Python SDK并不熟悉,但是在a.tags = "TESTETETSETEST"之后您不需要拨打其他电话对我来说似乎很奇怪。

您不需要使用update方法吗?