簡體   English   中英

將JSON從應用程序引擎導入到Google電子表格

[英]Import JSON from app engine to google spreadsheet

我正在嘗試從App Engine應用程序將數據(以json格式)導入Google電子表格。

我們需要通過我們的Google(商業應用)帳戶進行身份驗證才能訪問json。

現在,我只是試圖將內容放入單元格中。 因此,按照google文檔( https://developers.google.com/apps-script/reference/url-fetch/url-fetch-app ),我嘗試了以下簡單代碼:

function getCC() {

// Setup OAuthServiceConfig

var oAuthConfig = UrlFetchApp.addOAuthService('google');  
oAuthConfig.setAccessTokenUrl('https://app-id.appspot.com/_ah/OAuthGetAccessToken');  
oAuthConfig.setRequestTokenUrl('https://app-id.appspot.com/_ah/OAuthGetRequestToken');  
oAuthConfig.setAuthorizationUrl('https://app-id.appspot.com/_ah/OAuthAuthorizeToken'); 
oAuthConfig.setConsumerKey('app-id.appspot.com');  
oAuthConfig.setConsumerSecret('ConsumerSecret');  

var options =
{
"oAuthServiceName" : 'google',
"oAuthUseToken" : 'always',
"method": 'GET'
};

var resp = UrlFetchApp.fetch('https://app-id.appspot.com/rest/na/customer/all', options);  

// clear everything in the sheet
SpreadsheetApp.getActiveSheet().clearContents().clearFormats();

// set the values in the sheet (as efficiently as we know how)
SpreadsheetApp.getActiveSheet().getRange(1, 1).setValue(resp);  

}

我收到此錯誤: Request failed for returned code 302. Truncated server response: (use muteHttpExceptions option to examine full response) (line 19, file "basic")

所以我已經遵循了這個: https : //code.google.com/p/google-apps-script-issues/issues/detail? id =3478但我在日志中有完全相同的錯誤消息:/

編輯

這里帶有HttpmuteExceptions = true:

function getCC() {

var oAuthConfig = UrlFetchApp.addOAuthService('google');  
oAuthConfig.setAccessTokenUrl('https://app-id.appspot.com/_ah/OAuthGetAccessToken');  
oAuthConfig.setRequestTokenUrl('https://app-id.appspot.com/_ah/OAuthGetRequestToken');  
oAuthConfig.setAuthorizationUrl('https://app-id.appspot.com/_ah/OAuthAuthorizeToken'); 
oAuthConfig.setConsumerKey('app-id.appspot.com');  
oAuthConfig.setConsumerSecret('ConsumerSecret');    

var fetchParameters = {};
fetchParameters.oAuthServiceName = 'google';
fetchParameters.oAuthUseToken = 'always';
fetchParameters.method = 'GET';
fetchParameters.muteHttpExceptions = true

      try {
    var url = 'https://app-id.appspot.com/oauth/na/customer/all';
    var result = UrlFetchApp.fetch(url, fetchParameters);
    SpreadsheetApp.getActiveSheet().clearContents().clearFormats();
    SpreadsheetApp.getActiveSheet().getRange(1, 1).setValue(result);  
      } catch (e) {
    Logger.log(e);
      }

}

記錄輸出:

[14-01-27 11:48:33:692 CET] getResponseCode: function getResponseCode() {/*
*/}

[14-01-27 11:48:33:692 CET] getContentText: function getContentText() {/*
*/}

[14-01-27 11:48:33:692 CET] getContent: function getContent() {/*
*/}

[14-01-27 11:48:33:693 CET] getAs: function getAs() {/*
*/}

[14-01-27 11:48:33:693 CET] getHeaders: function getHeaders() {/*
*/}

[14-01-27 11:48:33:693 CET] toString: function toString() {/*
*/}

[14-01-27 11:48:33:693 CET] getBlob: function getBlob() {/*
*/}

[14-01-27 11:48:33:693 CET] getAllHeaders: function getAllHeaders() {/*
*/}

您知道如何解決此問題嗎?

謝謝

有效。

我使用了相同的代碼,並將其放在另一個腳本文件中。 我認為Oauth保留舊信息存在問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM