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

如何通过Drive API与Javascript自动获取Google Drive文件ID至网站

解决方案

前提条件

  • 将目标Google Drive文件夹设置为公开可查看(权限设置为“知道链接的任何人都能查看”)
  • 确保你的API_KEY已启用Drive API(在Google Cloud控制台的API库中开启Drive API)

最小化可行前端代码

<script src="https://apis.google.com/js/api.js"></script>
<script type="text/javascript">
var fileArray = [];
const API_KEY = '你的API_KEY';
const FOLDER_ID = '目标文件夹的ID'; // 从Drive文件夹URL中提取,比如https://drive.google.com/drive/folders/XXX中的XXX

async function loadDriveApi() {
  await gapi.client.load('https://www.googleapis.com/discovery/v1/apis/drive/v3/rest');
  gapi.client.setApiKey(API_KEY);
  await fetchAudioFiles();
}

async function fetchAudioFiles() {
  try {
    const response = await gapi.client.drive.files.list({
      q: `'${FOLDER_ID}' in parents and mimeType contains 'audio/'`, // 只筛选文件夹下的音频文件
      fields: 'files(id)', // 只获取文件ID,减少数据量
      pageSize: 1000 // 单次最多返回1000条,若文件超过1000需要处理分页
    });

    const files = response.result.files;
    if (files && files.length > 0) {
      fileArray = files.map(file => `https://docs.google.com/uc?export=open&id=${file.id}`);
      console.log('生成的音频链接数组:', fileArray);
      // 这里可以调用你的随机播放逻辑
    } else {
      console.log('文件夹中没有找到音频文件');
    }
  } catch (err) {
    console.error('获取文件列表失败:', err);
  }
}

// 页面加载时初始化API
window.addEventListener('load', loadDriveApi);
</script>

关键说明

  • 无需用户登录:因为文件夹是公开的,仅使用API_KEY即可访问元数据,不需要OAuth认证(可直接去掉CLIENT_ID、CLIENT_SECRET等OAuth相关参数)
  • 筛选音频文件:通过mimeType contains 'audio/'确保只获取音频文件,避免混入其他类型文件
  • 分页处理:如果文件夹内文件超过1000个,需要处理nextPageToken来获取所有文件,示例代码简化为单次请求,若需要可扩展分页逻辑
  • 链接格式:使用https://docs.google.com/uc?export=open&id=FILE_ID确保音频可以直接在浏览器中播放

原代码问题修正

  1. 移除require('googleapis'):这是Node.js环境的模块,前端浏览器无法使用
  2. 修正files.list参数:原代码用fileId错误,需用q参数指定父文件夹
  3. 为函数添加async关键字:确保await能正常使用
  4. 正确获取文件列表:原代码files变量未定义,需从response.result.files中获取

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 03:40:22