Laravel 8.x对接Vimeo实现表单上传时 响应缺失upload.form字段问题求助
Vimeo上传接口缺失
upload.form字段排查方案 关键排查方向
- 修正参数拼写错误:代码中将Vimeo规范要求的
approach参数错写为approch,缺失末尾的字母a。Vimeo API对入参为严格匹配逻辑,拼写错误时系统无法识别POST表单上传的意图,会默认返回TUS协议分片上传的配套字段,不会生成用于直传的upload.form内容。 - 调整调试解析逻辑:Laravel HTTP客户端返回的是封装后的响应类实例,直接对响应对象执行
dd()时,展示的是响应类的内部属性结构,并非接口原始返回的JSON数据。需要调用响应的json()方法解码拿到实际返回结构,再定位upload节点下的子字段,避免因调试方式偏差误判字段缺失。 - 校验OAuth授权范围:使用Vimeo基础账号对接时,需确认应用的授权配置已勾选
upload类写权限。若授权范围缺失,哪怕接口返回201成功状态码,也会隐藏表单上传相关的返回字段,仅返回视频基础元数据。
修正后可运行的代码片段
$response = Http::withToken('你的Vimeo访问令牌') ->withHeaders([ 'Content-Type' => 'application/json', 'Accept' => 'application/vnd.vimeo.*+json;version=3.4' ]) ->post('https://api.vimeo.com/me/videos', [ 'upload' => [ 'size' => $request->file->getSize(), 'approach' => 'post', // 修正拼写错误 ] ]); // 正确调试写法,直接查看upload节点的实际返回 dd($response->json('upload'));
结果验证
完成上述调整后,接口返回的upload节点下会正常包含form字段,内容为Vimeo生成的可直接嵌入页面的上传表单结构,包含表单提交目标地址、隐藏域参数、文件上传域的名称配置等,可直接对接前端表单完成视频直传流程。
内容的提问来源于stack exchange,提问作者Paulin Kouame
相关产品推荐
相关产品推荐

