You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

调用Vimeo API时files属性未返回的技术求助

解决Vimeo API请求中files字段缺失的问题

我来帮你排查这个问题,大概率是两个核心点没处理到位,咱们一步步来解决:

  • 首先检查:请求URL是否真的带上了?fields=name,files参数
    你的代码里调用RNFetchBlob.fetch时传入的uri变量,看起来没有拼接这个查询参数。比如如果是获取单个视频信息,正确的URL格式应该是:

    const uri = `https://api.vimeo.com/videos/${你的视频ID}?fields=name,files`;
    

    你可以在请求前打印uri确认参数是否存在:

    console.log('完整请求地址:', uri);
    

    这是最常见的原因——你说期望携带参数,但代码里的uri可能漏加了这段。

  • 其次验证:Access Token的权限范围是否足够
    Vimeo API的files字段需要video_files的权限范围,如果你的access token没有申请这个权限,就算请求了fields=files,API也会自动过滤掉这个字段。
    你可以去Vimeo开发者后台查看应用权限,或者在获取token时确保请求了scope=video_files(如果是授权码流程的话)。

  • 额外排查:用工具直接测试API排除代码问题
    可以用Postman或者curl直接调用Vimeo API,传入相同的access token和URL,看看响应里是否有files字段。比如curl命令:

    curl -H "Authorization: Bearer 你的accessToken" "https://api.vimeo.com/videos/你的视频ID?fields=name,files"
    

    如果工具调用能返回files,那问题就在React Native的代码里;如果工具也返回不了,那就是权限或者视频本身的问题(比如视频是私有且未授权,或者没有可访问的文件)。

  • 修正后的完整代码示例
    这里给你补全参数后的代码:

    const targetVideoId = '123456789'; // 替换成你的视频ID
    const accessToken = '你的有效访问令牌';
    const requestUri = `https://api.vimeo.com/videos/${targetVideoId}?fields=name,files`;
    
    RNFetchBlob.fetch('GET', requestUri, {
      "Authorization": `Bearer ${accessToken}`,
    })
    .then((data) => {
      const responseData = JSON.parse(data.data);
      console.log('API响应:', JSON.stringify(responseData));
      resolve(responseData);
    })
    .catch((error) => {
      console.error('请求失败:', error);
      reject(error);
    });
    

内容的提问来源于stack exchange,提问作者JeremyF

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 04:23:55