Google drive api 使用node.js中的API从google drive下载图像

Google drive api 使用node.js中的API从google drive下载图像,google-drive-api,Google Drive Api,Hi@iansedano,我想要实现这一点的代码。下面是我的代码: //[启动驱动器\u快速启动] 常数fs=要求('fs'); const path=require('path'); const readline=require('readline'); const{google}=require('googleapis'); //如果修改这些作用域,请删除token.json。 常量作用域=['https://www.googleapis.com/auth/drive']; //文件toke

Hi@iansedano,我想要实现这一点的代码。下面是我的代码:
//[启动驱动器\u快速启动]
常数fs=要求('fs');
const path=require('path');
const readline=require('readline');
const{google}=require('googleapis');
//如果修改这些作用域,请删除token.json。
常量作用域=['https://www.googleapis.com/auth/drive'];
//文件token.json存储用户的访问和刷新令牌,并且
//在第一次完成授权流时自动创建
//时间。
const TOKEN_PATH='TOKEN.json';
//从本地文件加载客户端机密。
让credPath=path.join(_dirname,'../../credentials.json');
fs.readFile(credPath,(err,content)=>{
if(err)返回console.log('加载客户端机密文件时出错:',err);
//使用凭据授权客户端,然后调用Google Drive API。
授权(JSON.parse(content),getFiles);
});
/**
*使用给定的凭据创建OAuth2客户端,然后执行
*给定回调函数。
*@param{Object}凭据授权客户端凭据。
*@param{function}回调使用授权客户端调用的回调。
*/
功能授权(凭证){
const{client\u secret,client\u id,redirect\u uris}=credentials.installed;
const oAuth2Client=new google.auth.OAuth2(
客户端id、客户端机密、重定向URI[0]);
//检查我们以前是否存储过令牌。
fs.readFile(令牌路径,(错误,令牌)=>{
if(err)返回getAccessToken(oAuth2Client,回调);
oAuth2Client.setCredentials(JSON.parse(token));
});
}
/**
*提示用户授权后获取并存储新令牌,然后
*使用授权的OAuth2客户端执行给定的回调。
*@param{google.auth.OAuth2}OAuth2客户端为OAuth2客户端获取令牌。
*@param{getEventsCallback}回调授权客户端的回调。
*/
函数getAccessToken(oAuth2Client,回调){
const authUrl=oAuth2Client.generateAuthUrl({
访问类型:“脱机”,
范围:范围,
});
log('通过访问此url授权此应用:',authUrl);
const rl=readline.createInterface({
输入:process.stdin,
输出:process.stdout,
});
rl.question('在此处输入该页面的代码:',(代码)=>{
rl.close();
oAuth2Client.getToken(代码,(错误,标记)=>{
if(err)返回console.error('检索访问令牌时出错',err);
oAuth2Client.setCredentials(令牌);
//将令牌存储到磁盘,以便以后执行程序
fs.writeFile(TOKEN_PATH,JSON.stringify(TOKEN),(err)=>{
if(err)返回控制台。error(err);
日志('令牌存储到',令牌路径);
});
回调(oAuth2Client);
});
});
}
/**
*列出最多10个文件的名称和ID。
*@param{google.auth.OAuth2}对授权的OAuth2客户端进行身份验证。
*@param fileId
*@param文件名
*/
函数getFiles(auth){
const drive=google.drive({version:'v3',auth});
var filePath=path.join(_dirname,'./../../images/photo.png');
//var filePath=path.join(uu dirname'./images/'+fileName+'.png');
var dest=fs.createWriteStream(文件路径);
get({fileId:'1hekdgm4oolqhhpsqsxamkrz0wmbyq0b',alt:'media'},{responseType:'stream'},
函数(err、res){
资源数据
.on('end',()=>{
console.log('Done');
})
.on('error',err=>{
console.log('Error',err);
})
.管道(目的地);
}
);
}
//[结束驱动器\u快速启动]
module.exports={
范围,
获取文件,

};这些线程对您的情况有用吗?你能分享你的代码吗?@iansedano在这里添加了代码。我现在想知道,我可以单独使用API密钥从Google drive下载图像?到目前为止,代码有什么问题?您是否收到任何错误消息?您是否按照参考文档上的说明让快速入门开始工作?