Я пытаюсь импортировать данные (в формате 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
Можете ли вы установить muteHttpExceptions в true в опциях json и вставить обратно содержимое ответа. –
Вот результат: http://pastebin.com/kmg6wPrA – zakiz