Vimeo API视频搜索:URL查询正常但代码调用异常咨询
排查Vimeo API SDK搜索视频失败的问题
我来帮你一步步排查这个问题——直接访问API链接能拿到结果,但用SDK代码就出问题,大概率是请求参数的差异或者代码里的小错误导致的,我们逐个分析:
1. 首先检查fields参数的完整性和拼写
你代码里的fields写的是'uri,name,description,duration,width,heig...,这里明显是截断了,而且heig应该是height的拼写错误吧?Vimeo API对fields参数的格式要求很严格,只要字段名写错或者不完整,都会导致请求异常(要么返回错误,要么返回空数据)。
修复方案:把fields补全成完整且正确的字段列表,比如:
'fields' => 'uri,name,description,duration,width,height,likes.total,pictures.sizes'
注意字段之间用逗号分隔,嵌套字段(比如视频封面图的尺寸)用点号.连接,不要有截断。
2. 缺少搜索和排序的关键参数
你直接访问的URL里有query=fashion(搜索关键词)、sort=likes(按点赞排序)、direction=desc(降序排列)这几个核心参数,但你的SDK代码里只传了page、per_page和fields,根本没加这些搜索相关的参数!这会导致SDK请求的是Vimeo默认的视频列表,而不是你要的“fashion”关键词搜索结果。
修复方案:把这些参数补充到请求数组里,还要明确指定HTTP请求方法为GET(有些SDK默认用POST,而视频搜索接口只接受GET):
// 完整的请求代码示例 $result = $vimeo->request("/videos", array( 'page' => $page, 'per_page' => $perPage, 'query' => 'fashion', // 必须加的搜索关键词 'sort' => 'likes', // 排序规则 'direction' => 'desc', // 排序方向 'fields' => 'uri,name,description,duration,width,height' // 完整正确的字段 ), 'GET'); // 明确指定GET请求
3. 额外排查点
如果上面两步修复后还是有问题,可以试试这两个方向:
- 检查SDK的请求方法:确认SDK的
request方法默认是不是GET,如果默认是POST,一定要手动指定第三个参数为'GET',Vimeo的视频搜索接口只支持GET请求。 - 对比实际请求URL:开启SDK的调试模式(或者自己打印出SDK拼接后的请求URL),和你能成功访问的URL对比,看参数、token是否完全一致,这样能快速定位参数差异。
内容的提问来源于stack exchange,提问作者Toniq
相关产品推荐
相关产品推荐

