谷歌在他们的文档中没有明确说明。经过半天的尝试修改所有可能有帮助的内容后,我发现您需要与您的服务帐户 json 文件中描述的电子邮件共享该文件。
例如,我的个人 Google Drive 中有一个 Google Slide 文件,我希望它可以被 Google Drive API 读取,我必须与xxx@xxx.iam.gserviceaccount.com
json 服务帐户文件中列出的共享这个 Slide 文件。
然后下面的代码片段应该返回共享的幻灯片文件:
import {google} from 'googleapis'
const credentials = require("./credentials.json");
async function main() {
const scopes = [
'https://www.googleapis.com/auth/drive',
'https://www.googleapis.com/auth/presentations',
]
const auth = new google.auth.JWT(
credentials.client_email,
null,
credentials.private_key,
scopes,
)
const drive = google.drive({
version: 'v3',
auth
})
const res = await drive.files.list()
console.log(res.data)
}
main()
{
kind: 'drive#fileList',
incompleteSearch: false,
files: [
{
kind: 'drive#file',
id: 'xxxxx',
name: 'xxxxx',
mimeType: 'application/vnd.openxmlformats-officedocument.presentationml.presentation'
},
]
}