【问题标题】:Get Flickr Images using php使用 php 获取 Flickr 图片
【发布时间】:2014-07-03 11:32:31
【问题描述】:

我正在尝试使用 api 密钥和密钥访问 flickr 图像。搜索后,我从link 获得了一个 zip 文件。在 example.php 文件中给出 apikey 和密钥后,我得到了一个警告,即

Warning: Invalid argument supplied for foreach() in C:\wamp\www\phpFlickr-3.1\example.php on line 21

这是我正在尝试的示例代码:

require_once("phpFlickr.php");
$f = new phpFlickr($api_key);

$recent = $f->photos_getRecent();

foreach ($recent['photo'] as $photo) {
  $owner = $f->people_getInfo($photo['owner']);
  echo "<a href='http://www.flickr.com/photos/" . $photo['owner'] . "/" . $photo['id']     . "/'>";
  echo $photo['title'];
echo "</a> Owner: ";
echo "<a href='http://www.flickr.com/people/" . $photo['owner'] . "/'>";
echo $owner['username'];
echo "</a><br>";
}

请帮助我,我正在尝试从过去 3 天开始执行此代码,但没有任何效果:(。

【问题讨论】:

    标签: php flickr phpflickr


    【解决方案1】:

    这段代码可用于测试和确认您的应用与 Flickr 应用之间的请求-响应是否正确。有时由于请求参数不正确,Flickr 的响应不如预期,导致页面无法正确呈现

    注意:您可能需要测试 cURL 是否在您计划运行此代码的服务器上工作,并在执行以下代码之前进行必要的更改。

    <?php 
    
    $url = 'https://api.flickr.com/services/rest/';
    $data = array("method"=>"flickr.photos.getRecent","api_key"=>"{YOUR_API_KEY}","format"=>"json","nojsoncallback"=>"1");
    $ch = curl_init();
    
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    
    $result = curl_exec($ch);
    
    $result_data_json = json_decode($result,true);
    
    $photoset = $result_data_json['photos'];
    $photos = $photoset['photo'];
    
    curl_close($ch);
    
    foreach($photos as $pic){
        // https://farm{farm-id}.staticflickr.com/{server-id}/{id}_{secret}.jpg
        $pic_thumbnail_url = 'https://farm'.$pic['farm'].'.staticflickr.com/'.$pic['server'].'/'.$pic['id'].'_'.$pic['secret'].'_n.jpg';
        $pic_url = 'https://farm'.$pic['farm'].'.staticflickr.com/'.$pic['server'].'/'.$pic['id'].'_'.$pic['secret'].'.jpg';
        $pic_large_url = 'https://farm'.$pic['farm'].'.staticflickr.com/'.$pic['server'].'/'.$pic['id'].'_'.$pic['secret'].'_b.jpg';
    
        echo '<img src='.$pic_thumbnail_url.'</img>';
     // echo '<br/><img src='.$pic_url.'</img>';
     // echo '<br/><img src='.$pic_large_url.'</img>';
    }
    ?>
    

    【讨论】:

      【解决方案2】:

      您需要一个在线服务器来尝试您正在使用的代码,因为您想测试 flick api。这是正确的,但您必须购买几个小时的服务器才能尝试您的代码。一个好的建议是https://www.digitalocean.com

      【讨论】:

      • 它还没有工作.. 仍然收到相同的警告,即警告:在第 21 行的 example.php 中为 foreach() 提供的参数无效
      猜你喜欢
      • 1970-01-01
      • 2019-07-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多