Get contents of Google Drive spreadsheet in CSV format
google-drive-api, node.js, request
Solution
Use this: https://github.com/jpillora/node-edit-google-spreadsheet
Example
var Spreadsheet = require('edit-google-spreadsheet');
Spreadsheet.create({
debug: true,
username: [GOOGLE USERNAME],
password: [PASSWORD],
spreadsheetName: 'node-edit-spreadsheet',
worksheetName: 'Sheet1',
spreadsheetId: '[DOC ID]',
callback: run
});
function run(err, spreadsheet) {
if(err) throw err;
//receive all cells
spreadsheet.receive(function(err, rows, info) {
if(err) throw err;
console.log("Found rows:", rows);
console.log("With info:", info);
});
}
Regards,
/t
Problem
I am trying to get the file contents of a Google Drive Spreadsheet via node.js. I am using the google-api-nodejs-client to get the `access_token` and the node-google-drive module to get the `file_id`. ``` "https://docs.google.com/feeds/download/spreadsheets/Export?key="+file_id+"&exportFormat=csv&gid=0" ``` When I'm logged into the Google Drive and I go to that URL above it downloads the spreadsheet in CSV format. When I try to go to that URL in incognito it shows a login page, which is the same page I'm getting in the body of my request within node.js. ``` request({ "method":"get", "url": "https://docs.google.com/feeds/download/spreadsheets/Export", "qs":{ "key": key, "exportFormat": "csv", "gid": 0 }, "headers":{ "Authorization": "Bearer " + token } }, function(err, response, body){ console.log(response); }); ``` I've tried to send a `Authorization` header, but I'm still getting an HTML response. Containing `Sorry, the file you have requested does not exist.`