2013-08-20 87 views
4

我試圖通過node.js獲取Google Drive電子表格的文件內容。我正在使用google-api-nodejs-client獲取access_tokennode-google-drive模塊以獲取file_id以CSV格式獲取Google Drive電子表格的內容

"https://docs.google.com/feeds/download/spreadsheets/Export?key="+file_id+"&exportFormat=csv&gid=0" 

當我登錄到Google Drive並轉到上面的URL時,它以CSV格式下載電子表格。當我嘗試在隱身模式下轉到該網址時,它會顯示一個登錄頁面,這是我在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); 
}); 

我試圖發送一個Authorization標題,但我仍然收到HTML響應。含Sorry, the file you have requested does not exist.

+0

嘗試檢查,當你登錄瀏覽器發送的報頭和訪問該頁面並將這些與請求發送的內容進行比較。然後嘗試逐個消除差異。在某個時候,它應該可能開始工作。我對這個特定的API一無所知,但如果您發送登錄cookie,我不會感到驚訝。 – mikl

+0

感謝您的建議,但它沒有奏效。 – ThomasReggi

+0

有關這方面的任何線索?我正在嘗試做同樣的事情。謝謝! – couzzi

回答

3

使用此:https://github.com/jpillora/node-edit-google-spreadsheet

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); 
    }); 
} 

問候,

/噸

相關問題