json — получение данных изображения с помощью Imgur API и переполнения стека

Я довольно новичок в php и пытаюсь использовать imgur API (мой код основан на нескольких уроках). Я пытаюсь получить изображение из imgur, отображающее его на веб-странице. Так что я использую этот код

<?php
$client_id = '<ID>';

$ch = curl_init();
curl_setopt($ch,CURLOPT_URL,'https://api.imgur.com/3/image/rnXusiA');
curl_setopt($ch,CURLOPT_CONNECTTIMEOUT, 5);
curl_setopt($ch,CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch,CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Authorization: Client-ID ' . $client_id));
$result = curl_exec($ch);
curl_close($ch);

$json = json_decode($result, true);
?>

После конвертации $result в ассоциативный массив, я пытаюсь получить доступ к данным

$data = $json->data->link;

Но в этом нет ничего $data и я получаю Trying to get property of non-object ошибка. Я предполагаю, что imgur не вернул никаких данных. Так что я делаю не так?

3

Решение

Я больше читаю о curl и переписал код.

<?php
$client_id = "<ID>";
$c_url = curl_init();
curl_setopt($c_url, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($c_url, CURLOPT_RETURNTRANSFER, true);
curl_setopt($c_url, CURLOPT_URL,"https://api.imgur.com/3/image/rnXusiA");
curl_setopt($c_url, CURLOPT_HTTPHEADER, array('Authorization: Client-ID ' . $client_id));
$result=curl_exec($c_url);
curl_close($c_url);
$json_array = json_decode($result, true);
var_dump($json_array);
?>

Это проснулся и var_dump($json_array); выводится содержимое массива.

$json_array['data']['link']; дает прямую ссылку на изображение.

Для альбома я изменил URL на https://api.imgur.com/3/album/y1dZJ и использовал цикл, чтобы получить ссылки на изображения

$image_array = $json_array["data"]["images"];

foreach ($image_array as $key => $value) {
echo $value["link"];
}

Я надеюсь, что это поможет любому, кто плохо знаком с imgur API.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]