我在 php 中实现 Bing Image Search API。我知道 Bing API 已更改,现在我们必须涉及 Windows azure 市场的东西才能使用 Bing Image Search API。
我已经这样做了,这意味着我选择了免费的 Bing Search Api 订阅,每月可以为我提供大约 5000 笔交易。它一切顺利,但事情是正在获取的结果往往会在 1 个月后过期。
这是我正在使用的代码:
$key = "cricket";
// Replace this value with your account key
$accountKey = 'WEGUEed3yF9CI6ZzVblKD0HoMRG3/rOELkCda9VYsuk=';
$ServiceRootURL = 'https://api.datamarket.azure.com/Bing/Search/';
$WebSearchURL = $ServiceRootURL . 'Image?$format=json&Query=';
$request = $WebSearchURL . urlencode( '\'' . $key . '\'');
$process = curl_init($request);
curl_setopt($process, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt($process, CURLOPT_USERPWD, $accountKey . ":" . $accountKey);
curl_setopt($process, CURLOPT_TIMEOUT, 30);
curl_setopt($process, CURLOPT_RETURNTRANSFER, TRUE);
$response = curl_exec($process);
$jsonobj = json_decode($response);
echo('<ul ID="resultList">');
foreach($jsonobj->d->results as $value)
{
echo('<li class="resultlistitem"><a href="' . $value->MediaURL . '">');
echo('<img src="' . $value->Thumbnail->MediaUrl. '"></li>');
}
echo("</ul>");
在运行这个程序时,我得到了结果,我得到了图像源。但问题是图像源似乎不是真正的图像源,我的意思是 URL 是这样的:
http://ts4.mm.bing.net/th?id=HN.608026386931518543&pid=15.1
此外,此链接在一个月左右后过期....最初我在单击链接时能够看到图像,但它在一个月后过期,现在我只能看到一个带有十字的灰色相机,这意味着我猜图像源已过期。
如果你可以让我如何限制这件事,并且在 windows azure 市场端需要做任何事情来让事情为我工作。
任何帮助将不胜感激
谢谢