我正在尝试使用PHP输出嵌入到我的wordpress站点上的Vimeo视频的图像缩略图。Vimeo视频具有域名级别的隐私。
看起来Vimeo已经更新了他们的API,就像我几年前在这里发布的其他答案中的建议一样,但这些都不起作用。我已经看过了他们的新API,但似乎无法理解它。
具体地说,我已经尝试了其中的一些变体:
<?php
$imgid = 6271487;
$hash = unserialize(file_get_contents("http://vimeo.com/api/v2/video/$imgid.php"));
echo $hash[0]['thumbnail_medium']; 这总是返回一种形式的致命错误。
任何关于实现这一目标的最佳方法的帮助都将不胜感激!
发布于 2019-07-15 23:10:51
有几件事:首先,路径为/api/v2/video/的API已被弃用,取而代之的是几年前发布的“新”API。
其次:旧的API只支持扩展.xml和.json,以这两种格式返回响应;.php不被旧的API支持。
要获取视频的缩略图,您需要使用the new API,或者如果视频是公开且可嵌入的,则使用oEmbed。使用Vimeo PHP库,获取视频元数据的请求将如下所示:
$videoId = '6271487';
$response = $client->request('/videos/'+$videoId+'/pictures', array(), 'GET');
print_r($response);oEmbed请求将如下所示(表示为curl,请注意Vimeo的oEmbed实现将只返回json或xml):
curl -X GET 'https://vimeo.com/api/oembed.json?url=https://vimeo.com/6271487'祝好运!
发布于 2019-07-17 17:56:03
为了完整,我联系了Vimeo,他们提供了以下内容,似乎工作得很好:
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://vimeo.com/api/oembed.json?url=https://vimeo.com/VIDEO_ID",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_POSTFIELDS => "",
CURLOPT_HTTPHEADER => array(
"Referer: REFERER_URL"
),
));
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}发布于 2019-07-15 22:55:22
您需要在API请求的头部中使用访问令牌。您还需要使用正确的API urls。
https://stackoverflow.com/questions/57037642
复制相似问题