我已经集成了 Google Drive 下载并在我的网站中共享文件。
用户使用 google-login 登录我们的应用程序,一旦用户登录我们的网站,我们就会获得他的授权范围。我们集成了 google-chooser,可以从他的个人 google 驱动器中拾取任何文件。一旦他选择了任何文件(例如:sample.pdf),我们就会将他的文件从 google 驱动器下载到我们的网站。我们使用以下代码。
function downloadFile(auth)
{
const drive = google.drive({ version: 'v3', auth });
var fileId = 'Choosen-file-id from google drive';
const dest = fs.createWriteStream('./downloadFiles/12.doc');
try{
drive.files.export({
fileId: fileId,
mimeType: 'application/vnd.google-apps.document'
}, {
responseType: 'stream'
},function(err, response){
if(err)return console.log(err);
response.data.on('error', err => {
console.log(err);
}).on('end', ()=>{
console.log('success');
})
.pipe(dest);
});
}catch(errr)
{
console.log(errr,'downloadFileErr')
}
}
同样,我们使用以下代码将我们网站上的任何文件共享给登录的用户驱动器帐户。
function uploadFile(auth)
{
const drive = google.drive({ version: 'v3', auth });
drive.files.create({
headers: {
'Authorization': 'Bearer Authorize Token received when user loggedIn with google account',
'Content-Type': "image/png",
},
resource: {
'name': `sampledocc`
},
media: {
mimeType:"image/png",
body: fs.createReadStream('./downloadFiles/4.png')
},
fields: 'id'
}, async function (err, file) {
if (err)
{
// Handle error
console.log(err,'Failed to upload');
} else {
console.log(err,'File uploaded successfully');
}
});
}
但是在共享和下载文件时我们都会遇到以下错误。
1)超出限制 2)未经授权的访问 3)您没有权限 4)凭证无效
我们已经在谷歌云账户中添加了账单详细信息,并激活了 Google Picker API、Google Drive Api 和重定向网址以及非限制范围,例如https://www.googleapis.com/auth/drive.file
但无法解决问题。我们询问了谷歌 oauth 团队,但他们在论坛/帮助中提到询问。所以我在论坛上发布了这个问题。你能分享或解决这个问题吗?