【发布时间】:2018-05-23 22:51:01
【问题描述】:
我有一个简单的 wordpress 插件,它应该从 Vimeo 获取信息。我试图从 vimeo 使用他们的“简单 api”和以下代码获取视频时长元数据:
function vimeo_duration ($id) {
try {
$ch = curl_init("http://vimeo.com/api/v2/video/$id/json");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$res = curl_exec($ch);
$obj = json_decode($res, true);
return $obj[0]['duration'];
} catch (Exception $e) {
# returning 0 if the Vimeo API fails for some reason.
return '0';
}
}
结果: 空白。它没有获取任何东西,也没有“0”。
这个链接是我们用来获取信息的链接:http://vimeo.com/api/v2/video/244509537/json,当您在浏览器中加载它时,它会给出以下结果:
(结尾的'json'可以替换成“/php”或“/xml”,会给出相应格式的结果。)
但是我发现不再支持此 api,我将不得不使用 new Api 来获取我想要的持续时间数据。 (也许这就是它不获取数据的原因)
我搜索了 StackOverflowa 和其他来源,但找不到一个可行的示例。我也通读了 vimeo 文档,但是我无法实现它。我按照他们的建议创建了 API,现在有了 Access Token。
我使用了我在 StackOverflow 中找到的这段代码,并对其进行了一些修改。但是它不返回任何值。 结果又是空白。它没有获取任何东西,也没有返回“0”。
function vimeo_duration ($id) {
try {
$authorization = 'your_vimeo_api_authorization_token_goes_here';
$ch = curl_init();
curl_setopt_array($ch, array(
CURLOPT_URL => "https://api.vimeo.com/videos/$id",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => array(
"authorization: Bearer {$authorization}",
"cache-control: no-cache",
),
));
$res = curl_exec($ch);
$obj = json_decode($res, true);
return $obj[0]['duration'];
} catch (Exception $e) {
# returning 0 if the Vimeo API fails for some reason.
return "0";
}
}
有人可以帮忙处理这段代码吗?我看到其他人有兴趣使用新的 API 来获取不同类型的信息,但这里没有很多工作示例,并且有很多未解答的问题。
【问题讨论】:
标签: php json api vimeo vimeo-api