×
注意!页面内容来自https://cloud.tencent.com/developer/ask/sof/764044,本站不储存任何内容,为了更好的阅读体验进行在线解析,若有广告出现,请及时反馈。若您觉得侵犯了您的利益,请通知我们进行删除,然后访问 原网页
如何让相关搜索包含在Bing search API的响应中?
根据这里的文档,我正在尝试应用具有值RelatedSearches的responseFilter:https://docs.microsoft.com/en-us/rest/api/cognitiveservices/bing-web-api-v7-reference#relatedsearchanswer
下面是我的代码,基于Bing的示例。我将"&responseFilter=RelatedSearches“添加到由file_get_contents()获取的URL中。
我得到的错误是:
PHP Warning: file_get_contents(https://api.cognitive.microsoft.com/bing/v7.0/search?responseFilter=RelatedSearches&q=iphone+case): failed to open stream: HTTP request failed! HTTP/1.1 403 Forbidden显然,我的应用是错误的。我可以做些什么来使其正常工作?
<?php
$accessKey = 'abc123';
$endpoint = 'https://api.cognitive.microsoft.com/bing/v7.0/search';
$term = 'burrito recipe';
function BingWebSearch ($url$key$query) {
$headers = "Ocp-Apim-Subscription-Key: $key\r\n";
$options = array ('http' => array (
'header' => $headers,
'method' => 'GET'));
$context = stream_context_create($options);
$result = file_get_contents($url . "?q=" . urlencode($query) . "&responseFilter=RelatedSearches"false$context);
$headers = array();
foreach ($http_response_header as $k => $v) {
$h = explode(":"$v2);
if (isset($h[1]))
if (preg_match("/^BingAPIs-/"$h[0]) || preg_match("/^X-MSEdge-/"$h[0]))
$headers[trim($h[0])] = trim($h[1]);
}
return array($headers$result);
}
if (strlen($accessKey) == 32) {
print "Searching the Web for: " . $term . "\n";
list($headers$on) = BingWebSearch($endpoint$accessKey$term);
print "\nRelevant Headers:\n\n";
foreach ($headers as $k => $v) {
print $k . ": " . $v . "\n";
}
print "\nJSON Response:\n\n";
echo on_encode(on_decode($on)JSON_PRETTY_PRINT);
} else {
print("Invalid Bing Search API subscription key!\n");
print("Please paste yours into the source code.\n");
}
?>发布于 2019-04-29 18:21:16
"403禁止“是一个提示。您没有权限请求RelatedSearches,除非您在S1实例上,如下所示:https://azure.microsoft.com/en-us/pricing/details/cognitive-services/search-api/
https://stackoverflow.com/questions/55901233
复制相似问题