Получение изображений Flickr с помощью php

#php #flickr #phpflickr

#php #flickr #phpflickr

Вопрос:

Я пытаюсь получить доступ к изображениям flickr, используя ключ api и секретный ключ. После поиска я получил zip-файл по ссылке. После указания apikey и секретного ключа в example.php файл, я получаю предупреждение, т. е.

 Warning: Invalid argument supplied for foreach() in C:wampwwwphpFlickr-3.1example.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 дня, но ничего не работает : (.

Ответ №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

Комментарии:

1. Это пока не работает.. Все еще получаю то же предупреждение, т. е. Предупреждение: недопустимый аргумент, предоставленный для foreach () в example.php в строке 21