2013-05-06 54 views
0

我正在嘗試編寫一種代理服務器,以便能夠使用Google Chart API查詢Google Spreadsheet,而不必直接向電子表格授予訪問可視化對象的權限。如何從Google App腳本中的UrlFetch服務調用Google Charts API?

爲了做到這一點,我想通過我的Google Apps腳本代理(與JSONP)的調用來代替像

var query = new google.visualization.Query('http://spreadsheets.google.com/tq?key=THE_KEY'); 
query.send(handleQueryResponse); 

呼叫。

我寫的代理如下: (我後來添加的選項封裝結果在一個函數 - JSONP)

function doGet(e) { 
    return ContentService 
    .createTextOutput(
     UrlFetchApp 
     .fetch("http://spreadsheets.google.com/tq?tq="+e.parameter.q+"&key="+e.parameter.key)) 
     .setMimeType(ContentService.MimeType.JSON); 
} 

當試圖得到迴應,我得到這個錯誤:google.visualization.Query.setResponse({"version":"0.6","status":"error","errors":[{"reason":"user_not_authenticated","message":"User not signed in","detailed_message":"\u003ca target=\u0022_blank\u0022 href=\u0022https://spreadsheets.google.com/spreadsheet/\u0022\u003eSign in\u003c/a\u003e"}]});

就像用戶未通過身份驗證一樣。我認爲這很奇怪,因爲我的腳本被部署爲一個Web應用程序,由我的用戶執行,他們在電子表格上擁有權限。我想我們必須使用一些OAuth,但我不知道如何以這種方式驗證查詢。

因此,我的問題是: 如何使用Apps腳本來驗證查詢以使用我在部署爲Web應用程序時定義的訪問權限訪問數據?

回答

0

查看urlfetch文檔。你錯過了所有的oauth東西。 你這樣做的方式只適用於公共ss。

相關問題