如何通过Node.js中的googleapis获取Google文档的描述信息
解决Google API获取云端硬盘文件描述信息的问题
嘿,问题出在你用错API啦!你当前调用的是Google Docs API的documents.get方法,这个接口只能返回文档本身的内容、格式这些编辑层面的数据,而文件的描述信息(也就是你说的简短摘要)属于Google Drive的文件元数据,得用Google Drive API来获取才行。
下面是调整后的解决方案:
1. 确认权限范围(Scopes)
首先要确保你的JWT授权用的scopes包含Drive API的权限,比如只读元数据的权限就足够:
const scopes = ['https://www.googleapis.com/auth/drive.metadata.readonly'];
如果需要修改描述的话,可以用更宽泛的https://www.googleapis.com/auth/drive(遵循最小权限原则,按需选择)。
2. 替换API调用为Drive API
修改你的代码,初始化Drive客户端并调用files.get方法,关键是要指定fields参数——因为Drive API默认不会返回所有元数据,必须明确声明要获取description字段:
const {google} = require('googleapis'); // 初始化Drive API客户端 const drive = google.drive({ version: "v3", }); // 你的clientEmail、privateKey、documentId(Drive文件ID和Docs文档ID是同一个) const jwt = new google.auth.JWT(clientEmail, null, privateKey, scopes); const response = await drive.files.get({ auth: jwt, fileId: documentId, // 指定要获取的字段,这里包含description和常用元数据,按需调整 fields: 'id, name, description, createdTime, modifiedTime' }); // 现在就能拿到描述信息了 console.log('文件描述:', response.data.description);
关键点说明
- Drive API的
files.get方法返回的是文件的元数据,其中description字段就是你要找的文件简短摘要。 fields参数非常重要:如果不指定,默认只会返回id、name等少数字段,不会包含description。你可以用fields: '*'获取所有元数据,但建议按需指定字段,提升接口响应效率。
如果你的JWT授权已经配置了正确的Drive权限,只需要替换原来的Docs API调用部分就可以正常获取描述信息啦!
内容的提问来源于stack exchange,提问作者Sergino
相关产品推荐
相关产品推荐

