希望您不要介意我发布问题,因为我不是程序员,需要“傻瓜”解释。尽管我可以使用基本的JavaScript,但从未使用过API。
,这就是我想要做的:
我已经在硬盘驱动器上制作了一个HTML页面(我最终希望将其与PhoneGap打包到移动应用程序中,以便与同事共享)。
我希望在页面的一部分中填充基于Web的Mendeley引用管理器应用程序中带注释的引用的文件夹内容。
目前,我正在用JSON文件填充页面(我从Mendeley导出并重新格式化-只是为了使引文格式代码正确-该部分很好,看起来不错)。
但是我希望页面不填充以前导出的文件,而是使用打开应用程序时Mendeley文件夹的最新内容自动下载到页面中。
我已经为Mendeley api的“文档”做过努力,查阅了书籍,YouTube教程,在网络上搜索-使用api下载可以找到的数据的所有示例,都帮不了我如何使用Mendeley api。我甚至无法从Mendeley SDK中的“示例”中了解!
到目前为止,这是我所能理解的(或者可能是误解了!):
但是现在呢?
最佳答案
让我给您一个有关如何使用Mendeley JS API的示例。这是我使用隐式流程登录的简约实现,并检索用户个人库中的所有文档。
var sdk = require('@mendeley/api');
var api = sdk({
authFlow: sdk.Auth.implicitGrantFlow({
clientId: <YOUR_CLIENT_ID_GOES_HERE>
})
})
api.documents.list().then(function(docs) {
console.log('Success!');
console.log(docs);
}).catch(function(response) {
console.log('Failed!');
console.log('Status:', response.status);
});
您可以扩展它以访问SDK提供的任何API。
但是,由于身份验证的工作方式,您需要将该网站的脚本托管在与注册客户端时在“重定向URL”中提供的URL完全相同的URL上。否则,您将收到一条错误消息
Redirection URI does not match the one registered for this application
。对于问题的第二部分,我相信您正在询问如何检索某个Mendeley文件夹中的所有文档(如果我对这方面的理解不正确,请纠正我)。假设您有一个文件夹,其文件夹ID为
aaaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee
。然后,您可以修改以上示例以检索该文件夹中的所有文档,如下所示:var sdk = require('@mendeley/api');
var api = sdk({
authFlow: sdk.Auth.implicitGrantFlow({
clientId: <YOUR_CLIENT_ID_GOES_HERE>
})
})
api.documents.list({
folderId: 'aaaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee'
}).then(function(docIds) {
console.log('Success!');
console.log(docIds);
}).catch(function(response) {
console.log('Failed!');
console.log('Status:', response.status);
});
在这种情况下,响应将包含文档ID,因此您需要调用
api.documents.retrieve(<DOCUMENT_ID>)
API来获取文档详细信息。关于javascript - Mendeley API-如何使用JavaScript SDK-隐式流身份验证,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44965399/