gpt4 book ai didi

node.js - 从 Node.js 中的命令行从 Google Drive 获取文件?

转载 作者:太空宇宙 更新时间:2023-11-04 03:30:22 25 4
gpt4 key购买 nike

为了方便更新信息屏幕上的内容,我们正在考虑将内容放在 Google 云端硬盘上,然后允许通过基于 NodeJS 的应用程序同步内容。

目前,我正在尝试使用从我自己的帐户共享的文件夹来测试这种方法。

到目前为止,我所拥有的基于 https://github.com/google/google-api-nodejs-client/tree/master 的文档:

var google = require('googleapis');
var OAuth2 = google.auth.OAuth2;
var readline = require('readline');

const CLIENT_ID = 'xxxxxxxx.apps.googleusercontent.com';
const CLIENT_SECRET = '7h3c13n7s3cr37';
const REDIRECT_URL = 'https://accounts.google.com/o/oauth2/auth';

var oauth2Client = new OAuth2(
CLIENT_ID, CLIENT_SECRET, REDIRECT_URL);

var scopes = [
'https://www.googleapis.com/auth/drive.readonly',
'https://www.googleapis.com/auth/drive.metadata.readonly'
];

var url = oauth2Client.generateAuthUrl({
access_type: 'offline', // 'online' (default) or 'offline' (gets refresh_token)
scope: scopes // If you only need one scope you can pass it as string
});

console.log('past following URL into a web browser');
console.log(url);

const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});

rl.question('Provide Key generated on web page ', (answer) => {

// store response key in file?

var drive = google.drive({ version: 'v2', auth: oauth2Client });

var folderId = 'mif01d3r';

drive.children.list({
auth: answer,
folderId: folderId,
}, function(error, response) {
if (error) {
console.log('err: ', error);
return;
}
console.log(response);
});

});

当前的问题是“REDIRECT_URL”的值似乎不合适。对于命令行应用程序,我应该在此处放置什么?

最佳答案

有一个更简单的方法。手动生成刷新 token ,然后从您的应用程序引用该 token (当然是安全的)。这样就不需要身份验证,没有重定向 URL 等。

参见How do I authorise an app (web or installed) without user intervention? (canonical ?)

关于node.js - 从 Node.js 中的命令行从 Google Drive 获取文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38860441/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com