我试图通过为它们创建的oEmbed API端点来提取Vine的JSON数据。该请求在浏览器和我的本地Vagrant机器上运行正常,但是只要我在服务器上运行它就会引发500内部服务器错误。就好像我的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请求也返回HTML格式化500内部服务器错误
$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执行类似的请求,而不会出现内部服务器错误。
答案 0 :(得分:0)
这是有效的,经过测试。
$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,返回一个数组而不是一个对象。