Bing Image Search API结果会在一段时间后过期

时间:2014-05-12 11:07:13

标签: php curl bing-api azure-connect

我正在php中实现Bing Image Search API。我知道Bing API已被更改,现在我们必须使用windows azure marketplace来使用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

此链接也会在一个月左右后过期....最初我点击链接后可以看到图像,但是一个月后它就过期了,现在我只能看到一个带有十字架的灰色相机这意味着我猜想图像源已经过期了。

如果你能告诉我,我怎么能限制这件事,而且在天蓝色的市场上也需要做任何事情才能让事情适合我。

任何帮助将不胜感激

谢谢

1 个答案:

答案 0 :(得分:0)

修复原始图片。

在第22行,解释接收和解析的JSON数据

echo('<li class="resultlistitem"><a href="' . $value->MediaURL . '">');

Bing有一个错误。

你可以替换 $value->MediaURL $value->MediaUrl 并且您可以获得对原始图像的访问权限。