我正在尝试使用node google api下载一些excel文件。我找到了this示例,但没有看到相同的结果。
运行类似代码时,我收到Cannot read property 'pipe' of undefined
:
var output = fs.createWriteStream("./output/accounts/2016/" + file.name);
var test = drive.files.get({
fileId: file.gID,
alt: 'media'
}).pipe(output);
我尝试记录get的返回值,我刚刚获得undefined
:
var output = fs.createWriteStream("./output/accounts/2016/" + file.name);
var test = drive.files.get({
fileId: file.gID,
alt: 'media'
});
console.log(test);
我可以使用回调格式获取文件的文本。由于excel格式,下面的代码运行并打印出一堆特殊字符。使用fs.writeFile(...)
保存然后使用excel打开不会导致格式正确,我仍然在任何地方都有特殊字符,所有数据都在A列中。
var test = drive.files.get({
fileId: file.gID,
alt: 'media'
}, function (err, contents) {
console.log(contents);
});
有没有人遇到过这个问题?
答案 0 :(得分:0)
经过一些更多的研究,我在github上发现了一些与之相关的旧问题。我想对OAuth2的更新破坏了刷新令牌,并且需要手动刷新令牌以便返回Response对象。
来源:https://github.com/google/google-api-nodejs-client/issues/381
以下是最终为我工作的代码:
var jwtClient = new google.auth.JWT(...);
jwtClient.refreshAccessToken(function(err, tokens) {
var test = drive.files.get({
fileId: googleFileId,
alt: 'media'
}).on('end', function() {
finished.call();
}).on('error', function(err) {
process.exit(err);
}).pipe(output);
});