2014-01-23 4 views
0

Я пытаюсь импортировать данные (в формате json) из приложения приложения приложения в электронную таблицу Google.Импорт JSON из приложения в электронную таблицу google

Чтобы получить доступ к json, нам необходимо пройти аутентификацию с помощью нашей учетной записи Google (приложения для бизнеса).

На данный момент я просто пытаюсь получить содержимое в ячейку. Итак, следуя документации 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, но у меня есть точно такая же сообщение об ошибке в логах:/

EDIT

Вот с HttpmuteExceptions = верно:

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() {/* 
*/} 

У вас есть какие-либо идеи, как решить эту проблему?

Thanks

+0

Можете ли вы установить muteHttpExceptions в true в опциях json и вставить обратно содержимое ответа. –

+0

Вот результат: http://pastebin.com/kmg6wPrA – zakiz

ответ

0

Это сработало.

Я использовал тот же код и поместил его в другой файл сценария. Я думаю, что проблема была в том, что Оут сохранил старые сведения.

Смежные вопросы