Получить данные Imgur JSON с URL

0

Я смотрю API imgur, и я пытаюсь получить данные JSON imgur с помощью следующего метода API:

https://api.imgur.com/models/image

Я уже зарегистрировал свой идентификатор клиента, но понятия не имею, как получить данные JSON с URL https://api.imgur.com/3/image/{id} (с учетом ID).

Как получить эти данные с помощью cURL и PHP?

Вот что я пробовал, но он явно не работает:

function getImageData() {
    $client_id = "<CLIENT_ID>";

    $ch = curl_init();
    curl_setopt($ch,CURLOPT_URL,'https://api.imgur.com/3/image/SbBGk');
    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));
    curl_exec($ch);
    $lastUrl = curl_getinfo($ch, CURLINFO_EFFECTIVE_URL);
    curl_close($ch);

    return $lastUrl;
}
  • 0
    Я перепробовал несколько ответов на другие вопросы, связанные с stackoverflow, но ни один из них не вернул данные, которые мне нужны. Я обновил вопрос тем, что имею сейчас.
  • 1
    Вы не сохраняете данные $result = curl_exec($ch); затем сделайте var_dump($result, curl_getinfo());
Показать ещё 1 комментарий
Теги:
curl
imgur

1 ответ

1
Лучший ответ

Это вернет данные.

function getImageData() {
    $client_id = "<CLIENT_ID>";

    $ch = curl_init();
    curl_setopt($ch,CURLOPT_URL,'https://api.imgur.com/3/image/SbBGk');
    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);

    return $result;
}

Чтобы получить идентификатор изображения или галереи, вам нужно проанализировать URL с регулярным выражением. Я плохо разбираюсь в регулярном выражении, но это должно вам помочь. Я уверен, что есть лучшее решение для этого.

preg_match('#(http(s)?:\/\/(www.|i.)?imgur.com)\/(?!a)(gallery\/)?(([-|~_0-9A-Za-z]+)&?.*?)#i', $link, $matches);
$id = $matches[6];

Ещё вопросы

Сообщество Overcoder
Наверх
Меню