使用PHP进行Bing自定义搜索

时间:2017-05-23 05:06:59

标签: php azure bing-api

我正在使用以下PHP代码测试新的Bing Custom Search。结果是一个空白的白色屏幕,没有错误。是因为这项服务仍处于测试阶段吗?

<?php
$sURL = "https://api.cognitive.microsoft.com/bingcustomsearch/v5.0/search?q=dogs&customconfig=[mycustomconfigvalue]&responseFilter=Webpages&mkt=en-us&safesearch=Moderate";
$key = "[myPrimaryKey]";


$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $sURL); 
curl_setopt($ch, CURLOPT_TIMEOUT, '1'); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 'ocp-apim-subscription-key:$key');
$content = curl_exec($ch);

echo $content;
?>

当我尝试使用Postman验证API密钥是否适用于我时,我收到错误消息“无法获得任何响应”。

但是,如果我在端点部分下的https://customsearch.ai中尝试相同的值,则可以通过显示响应来完美地工作。

任何人都可以告诉我,我无法使用自己的PHP代码运行代码吗?

由于

2 个答案:

答案 0 :(得分:1)

3 错误:

1 - CURLOPT_HEADERCURLOPT_HTTPHEADER不同 2 - CURLOPT_HTTPHEADERarray为参数,而不是string 3 - 变量($key)仅在双引号内扩展

尝试:

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $sURL); 
curl_setopt($ch, CURLOPT_TIMEOUT, 1); # you may want increase this value
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, ["ocp-apim-subscription-key:$key"]);
$content = curl_exec($ch);

答案 1 :(得分:0)

我在某处回复了这个问题。这是一个工作的PHP片段。只需替换YOUR_QUERY,YOUR_KEY和YOUR_CUSTOMCONFIG。

$endpoint = 'https://api.cognitive.microsoft.com/bingcustomsearch/v7.0/search';
$term = 'YOUR_QUERY';
$headers = "Ocp-Apim-Subscription-Key: YOUR_KEY\r\n";
$options = array ('http' => array (
                      'header' => $headers,
                       'method' => 'GET'));
$context = stream_context_create($options);
$result = file_get_contents($url . "?q=" . urlencode($query) . "&customconfig=YOUR_CUSTOMCONFIG&responseFilter=Webpages&mkt=en‌​-us&safesearch=Moder‌​ate", false, $context);