使用Google Drive v3 API时出现404文件找不到错误。我从Google Picker获取的文件ID,所以我知道ID是正确的。令人反感的代码如下(javascript):
downloadFile: function () {
var _this = this;
gapi.client.init({
apiKey: this.developerKey,
clientId: this.clientId,
discoveryDocs: ['https://www.googleapis.com/discovery/v1/apis/drive/v3/rest'],
scope: 'https://www.googleapis.com/auth/drive'
}).then(function () {
// not working with private files
gapi.client.setToken(_this.oauthToken);
gapi.client.drive.files.export({
'fileId': _this.selectedFileId,
'mimeType': 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'
}).then(function (response) {
console.log('success!');
});
}, function (error) {
console.log(error);
});
}, function (error) {
console.log(error);
});
}
有趣的是,并非所有文件都只有私有文件。因此,我认为“找不到文件”错误只是Google的一般性回复,表明我不允许访问该文件。
奇怪的是,做一个files.get可以正常工作:
gapi.client.drive.files.get({
fileId: _this.selectedFileId,
supportsTeamDrives: true
}).then(function (response) {
console.log('worked');
}, function (error) {
console.log('failed');
});
答案 0 :(得分:1)
使用 https://www.googleapis.com/auth/drive.file 权限时,我看到了相同的错误:要使导出正常工作,您至少需要拥有 https://www.googleapis.com/auth/drive.readonly 授予您正在使用的OAuth令牌的权限。