Я пытаюсь получить данные JSON для Vine через конечную точку API oEmbed, созданную для них. Запрос отлично работает в браузере и на моей локальной машине Vagrant, но как только я запускаю его на сервере, он выдает 500 Internal Server Error. Как будто мой сервер Rackspace был заблокирован от отправки запросов к их API, но это первый раз, когда я пытался делать запросы к Vine.
$url = 'https://vine.co/oembed.json?url=http://vine.co/v/egXzgWMjrTj';
$res = file_get_contents($url);
$json = json_decode($res);
Я уже пытался использовать запрос cURL и передать stream_create_context () с заголовками в вызов file_get_contents ().
Мой пример cURL-запроса, который также возвращает 500 Внутренняя ошибка сервера в формате HTML
$url = 'https://vine.co/oembed.json?url=http://vine.co/v/egXzgWMjrTj';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$res = curl_exec($ch);
Моя конечная цель — получить миниатюру для видео, и я выполняю аналогичные запросы к Vimeo и Instagram, не получая внутреннюю ошибку сервера.
Это работает, проверено.
$res = file_get_contents('https://vine.co/oembed.json?url=http://vine.co/v/egXzgWMjrTj');
$json = json_decode($res,true);
echo $json['thumbnail_url'];
Второй параметр json_decode в true возвращает массив вместо объекта.
Других решений пока нет …