我使用了Crossref REST API,我只是在浏览器地址栏中向它发送查询,然后以JSON返回结果。
所以我发送以下URL:
https://api.crossref.org/works?query.bibliographic=Randomized trial of intensive early intervention for children with pervasive developmental disorder&query.author=Groen&rows=1
我希望对Microsoft REST API也是如此,但是如果我发送它:
我收到“由于无效的订阅密钥而拒绝访问”。
我可以通过URL传递密钥吗?如果可以,怎么办?
不是那么简单。
它是否还需要其他代码-如果需要,我可以使用PHP进行编码,或者使用jQuery。
类似的东西:
$(document).ready(function() {
$.ajax({
type:'GET',
url:'https://api.crossref.org/works?query.bibliographic=<?php echo $title ?>&query.author=<?php echo $author ?>&rows=1&select=is-referenced-by-count,author,title,DOI,issn-type,volume,issue,link,page,abstract',
success:function(result) {
var total_results = result.message["total-results"];
}
});
但是,再次使用Microsoft API-我将如何向其发送密钥?
谢谢。
答案 0 :(得分:0)
什么是“ Microsoft REST API”?您是指Azure API管理吗? “无效的订阅密钥”表示这是API管理中托管的API,使用此术语描述其身份验证模型。以下答案假定是这种情况。
您将需要注册为用户并获得订阅密钥。有一个this documentation描述的自助服务门户网站。是否允许自助服务由API管理员决定,因此您是否可以自己进行自助服务,或者您可能必须请求管理员进行注册。 Further documentation describes a bit how to use the portal。
拥有它时,可以将其作为名为Ocp-Apim-Subscription-Key
的http标头应用,但是它期望的名称也是可配置的,并且可能已更改,管理员必须告诉您。
答案 1 :(得分:0)
我终于找到了我需要的文档(有关Azure的Microsoft文档是一个可怕的迷宫,其中有很多东西已经过时和损坏了。)
因此文档在这里:
我在页面底部修改了Jacascript示例,并提出:
<!DOCTYPE html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$.ajax({
type:'GET',
url:'https://api.labs.cognitive.microsoft.com/academic/v1.0/evaluate?expr=Composite(AA.AuN==%27jaime%20teevan%27)&count=2&attributes=Ti,Y,CC,AA.AuN,AA.AuId',
beforeSend: function(xhrObj){
// Request headers
xhrObj.setRequestHeader("Ocp-Apim-Subscription-Key","xxxxmykeyxxxxx");
},
success:function(result) {
alert(result.entities[0].Ti);
}
});
});
</script>
</head>
</html>
查询返回作者“ jamie teevan”的所有标题。 尽管在此示例中,我只是通过“ alert”输出第一个标题。我还没有编写其余的代码-只是想知道它现在是否有效。
现在我要做的就是计算表达式,以返回给定标题和作者的所有引用文档!! :-/祝我好运。