Используя Google Apps Email Settings API, делегат удален с помощью приведенного ниже сценария. При возникновении ошибки, например, пытается удалить делегатов, которые не существуют, то будет возвращено следующее сообщение:muteHttpExceptions = истинный отказ аутентификации ошибок
Исключение: Не удалось выполнить запрос возвращенного кода 400. Усеченный сервера Ответ: < XML версия = «1,0» кодирования = "UTF-8"? > < AppsForYourDomainErrors > < ошибка ERRORCODE = "1303" invalidInput = "[email protected]" причина = "E ... (использование muteHttpExceptions возможность ознакомиться с полным ответом)
Однако при использовании muteHttpExceptions = true
в аутентификация не:
исключение: Не удалось выполнить аутентификацию для службы: Google
Это заставляет меня использовать структуру try/catch вместо изучения объекта HTTPResponse
. Я хотел бы знать, почему это происходит и как его решить.
Тест функции:
function test() {
var consumerKey = 'XXXX';
var consumerSecret = 'XXXX';
var domain = 'XXXX.com';
var userName = 'XXXX'
var delegateName = '[email protected]'
var serviceName = 'google';
var scope = 'https://apps-apis.google.com/a/feeds/emailsettings/2.0/';
var oAuthConfig = UrlFetchApp.addOAuthService(serviceName);
oAuthConfig.setRequestTokenUrl('https://www.google.com/accounts/OAuthGetRequestToken?scope=' + scope);
oAuthConfig.setAuthorizationUrl('https://www.google.com/accounts/OAuthAuthorizeToken');
oAuthConfig.setAccessTokenUrl('https://www.google.com/accounts/OAuthGetAccessToken');
oAuthConfig.setConsumerKey(consumerKey);
oAuthConfig.setConsumerSecret(consumerSecret);
var fetchParameters = {};
fetchParameters.oAuthServiceName = serviceName;
fetchParameters.oAuthUseToken = 'always';
fetchParameters.method = 'DELETE';
fetchParameters.muteHttpExceptions = false;
try {
var url = 'https://apps-apis.google.com/a/feeds/emailsettings/2.0/'+ domain + '/' + userName + '/delegation/' + delegateName;
var result = UrlFetchApp.fetch(url, fetchParameters);
} catch (e) {
Logger.log(e);
}
}