使用Vimeo PHP SDK筛选指定日期后视频失败问题求助
解决Vimeo PHP SDK筛选指定日期后视频的问题
你的代码问题出在查询参数的格式不符合Vimeo API要求,Vimeo并不支持嵌套的filter数组结构,而是需要用特定格式的查询参数来实现日期筛选。
修正后的代码
<?php class Fetch extends Controller { public function __invoke(Request $request) { $client = new Vimeo($vimeoClient, $vimeoSecret, $vimeoAccess); // 确保$from_date是符合ISO 8601格式的字符串,比如"2023-01-01T00:00:00Z" $response = $client->request('/me/videos', [ 'method' => 'GET', 'query' => [ 'fields' => 'uri,name,created_time', 'sort' => 'date', 'direction' => 'desc', 'filter_created_time' => "gte:{$from_date}" ], ]); foreach ($response['body']['data'] as $video) { echo "Video Adı: {$video['name']} - Oluşturulma Tarihi: {$video['created_time']} - URI: {$video['uri']}<br>"; } } }
关键说明
- Vimeo API的日期筛选需要使用
filter_{field}格式的参数,这里对应filter_created_time,值的格式是操作符:日期字符串,比如gte:2023-01-01T00:00:00Z。 - 日期必须是ISO 8601格式(带时区的UTC时间,比如
YYYY-MM-DDTHH:MM:SSZ),如果你的$from_date是普通日期格式,需要先转换为ISO格式,比如用date('c', strtotime($from_date))来处理。 - 确认你的API权限足够访问用户的视频列表,并且
$vimeoClient、$vimeoSecret、$vimeoAccess这些变量已经正确赋值。
Vimeo是支持按创建日期筛选视频的,只要参数格式正确就能生效。
内容的提问来源于stack exchange,提问作者Saleh Mehdiyev
相关产品推荐
相关产品推荐

