我正在尝试将图片文件green.png上传到我的google驱动器,但继续收到错误消息
"不充分的许可"。
我怀疑它与我的var path = require("path");
const fs = require('fs');
const readline = require('readline');
const {google} = require('googleapis');
const OAuth2Client = google.auth.OAuth2;
const TOKEN_PATH = 'credentials.json';
var fileArr=[];
var multipart = require('connect-multiparty');
var multipartMiddleware = multipart();
var multer = require("multer");
var upload = multer({dest: "./uploads"});
const SCOPES = ['https://www.googleapis.com/auth/drive.metadata.readonly',
'https://www.googleapis.com/auth/drive',
'https://www.googleapis.com/auth/drive.file',
'https://www.googleapis.com/auth/drive.metadata',
'https://www.googleapis.com/auth/drive.photos.readonly',
'https://www.googleapis.com/auth/drive.appdata',
];
module.exports=function(app){
app.post("/upload2", upload.array('file', 4) , function(req, res, next){
const TOKEN_PATH = 'credentials.json';
fs.readFile('client_secret.json', (err, content) => {
if (err) return console.log('Error loading client secret file:',
err);
authorize(JSON.parse(content), UploadFiles);
});
function authorize(credentials, callback) {
const {client_secret, client_id, redirect_uris} =
credentials.installed;
const oAuth2Client = new OAuth2Client(client_id, client_secret,
redirect_uris[0]);
fs.readFile(TOKEN_PATH, (err, token) => {
if (err) return getAccessToken(oAuth2Client, callback);
oAuth2Client.setCredentials(JSON.parse(token));
callback(oAuth2Client);
});
}
function UploadFiles(auth) {
console.log(auth)
const drive = google.drive({version: 'v3', auth});
var folderId = '1AM07eNAJz5D4oFa5ZB-0ygOa_tVjoAgR';
var fileMetadata = {
'name': 'green.png'
parents: [folderId]
};
var media = {
mimeType: 'image/png',
body: fs.createReadStream('./img/green.png')
};
drive.files.create({
resource: fileMetadata,
media: media,
fields: 'id'
}, function (err, file) {
if (err) {
// Handle error
console.log(err);
} else {
console.log('File Id: ', file.id);
}
});
}
})
}
有关。我已多次修改我的范围并继续得到错误。
有没有人有任何想法,我可以对我的代码成功上传到我的驱动器?谢谢
Target.Address = "$H$5:$H$32"
答案 0 :(得分:0)
代码:403,错误:[{domain:'global',reason:'insufficientPermissions',message:'Insufficient Permission'}}}
完全意味着您通过身份验证的用户无权执行您要执行的操作。
在您的情况下,两件事之一可能是您的问题的原因。
您通过身份验证的用户无法访问下面的文件夹,您可能会错过输入它可能属于另一个用户,而您忘记与该用户共享。
var folderId = '1AM07eNAJz5D4oFa5ZB-0ygOa_tVjoAgR';
第二个选项是,您目前正在将所有范围都包括在您真正不需要的太阳下。但是,如果您第一次对此用户进行身份验证时,您只需要阅读我的请求,那么用户只能授予读取权限。您需要对用户进行身份验证,并且它将提示您在代码中添加的其他范围的权限,然后它将起作用。
你真的只需要它就可以访问所有内容。
'https://www.googleapis.com/auth/drive',