将文件上传到Google云端硬盘:权限不足

时间:2018-05-16 22:52:51

标签: javascript google-drive-api

我正在尝试将图片文件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"

1 个答案:

答案 0 :(得分:0)

  

代码:403,错误:[{domain:'global',reason:'insufficientPermissions',message:'Insufficient Permission'}}}

完全意味着您通过身份验证的用户无权执行您要执行的操作。

在您的情况下,两件事之一可能是您的问题的原因。

您通过身份验证的用户无法访问下面的文件夹,您可能会错过输入它可能属于另一个用户,而您忘记与该用户共享。

var folderId = '1AM07eNAJz5D4oFa5ZB-0ygOa_tVjoAgR';

第二个选项是,您目前正在将所有范围都包括在您真正不需要的太阳下。但是,如果您第一次对此用户进行身份验证时,您只需要阅读我的请求,那么用户只能授予读取权限。您需要对用户进行身份验证,并且它将提示您在代码中添加的其他范围的权限,然后它将起作用。

你真的只需要它就可以访问所有内容。

'https://www.googleapis.com/auth/drive',