我一直在尝试使用angularJS和bing搜索api的v7进行项目。但是,每当我向提供的URL(“https://api.cognitive.microsoft.com/bing/v7.0/news?”)发出http请求时,都会收到错误403响应,并显示错误消息:“授权不足”。我查看了Microsoft docs,他们说错误可能是“如果订阅密钥已被禁用或已过期。”
但是,我今天刚拿到这把钥匙。它似乎已经过期或已经停用似乎很奇怪。不确定这里会发生什么。
相关代码
var params = {
// Bing news search request parameters
"q": "query",
"count": "3",
"offset": "0",
"mkt": "en-us",
"safesearch": "Moderate"
};
$http({
method: 'GET',
url: "https://api.cognitive.microsoft.com/bing/v7.0/news?"+ $httpParamSerializer(params),
headers:{"Ocp-Apim-Subscription-Key":"my_subscription key"}
}).then(
function successCallback(response) {
console.log('success');
console.log(response);
}, function errorCallback(response) {
console.log('error');
console.log(response);
});
可能导致此问题的原因是什么?如果这是API的问题,是否还有其他好的新闻采集API?
答案 0 :(得分:1)
为什么“https://api.cognitive.microsoft.com/bing/v7.0/news”给出了403 - 权限不足?
v5.0网址有效。 v7.0根本不会。这似乎是微软。 毕竟它还在预览中。
在v5.0或7.0上 / search 有效。 对于 / trendingtopics ,您需要使用 en-US 或 zh-CN 传递?mkt = 。
我是否需要azure帐户才能访问API?
不,您不需要Azure帐户。生成的API密钥可以在API test from Microsoft(如果可用),Postman或任何其他为您提出请求的机制中使用。
答案 1 :(得分:0)
https://api.cognitive.microsoft.com/bing/v7.0/news是一个不同的终点。它适用于类别新闻搜索:https://dev.cognitive.microsoft.com/docs/services/e5e22123c5d24f1081f63af1548defa1/operations/56f02400dbe2d91900c68553。
此处定义的https://api.cognitive.microsoft.com/bing/v7.0/news/search:https://dev.cognitive.microsoft.com/docs/services/e5e22123c5d24f1081f63af1548defa1/operations/56b449fbcf5ff81038d15cdf是获取给定查询的新闻的正确终点。
两个端点都适用于各自的用例 - 没有“/ search”类别新闻(可选“类别”参数)和一个带有“/ search”的端点用于此处的预期用例。