在下面的虛擬代碼中,通常根據Google的API示例進行拆分,其中有三個函數 - API需要兩個函數和一個RunMe()函數。如果電子表格請求無效,我可以訪問它從handleQueryResponse()函數返回的錯誤消息。但爲了我的目的,我需要能夠從runMe()函數內測試response.isError()的存在。這似乎很簡單,但我似乎無法從handleQueryResponse()之外獲取該響應對象。這可能是由於我的JavaScript新手狀態,或者因爲API有些奇怪。在Google可視化API中訪問響應狀態
我也覺得很奇怪,取消註釋console.log(query);在getTableMeta()函數中產生一個「Er」對象,它似乎只是一個原型,而不是實際查詢的表示。
感謝您的建議。
下面的電子表格ID無效,最後的「z」表示無效,刪除時有效。
function runMe() {
var foo = getTableMeta('0AtP_YtDJ532RdDcxZUl6Zkl4YkxKcEYzbld4ZDA4SlEz');
// console.log(response);
// console.log(response.getMessage());
// console.log(foo.getMessage());
}
// Get table metadata from Google
function getTableMeta(spreadsheet_id) {
var query = new google.visualization.Query('https://spreadsheets.google.com/a/google.com/tq?key=' + spreadsheet_id);
// console.log(query);
query.send(handleQueryResponse);
}
function handleQueryResponse(response) {
if (response.isError()) {
// alert('Error in query: ' + response.getMessage() + ' ' + response.getDetailedMessage() + '. Please click Previous and enter a different spreadsheet ID.');
console.log(response.getMessage());
}
return response;
}
runMe();
感謝奧利 - 這解釋了很多:)這將是一個嚮導用戶界面,我希望在第一步驗證,但它聽起來像我需要爲此提出一個不同的用戶界面。讚賞。 – shacker