muteHttpExceptions = true выдает ошибку аутентификации

С помощьюAPI настроек электронной почты Служб Google делегат удаляется с помощью сценария ниже. Если возникает ошибка, например, при попытке удалить несуществующих делегатов, возвращается следующее сообщение:

Исключение: запрос не выполнен для возвращенного кода 400. Усеченный ответ сервера: <xml version = "1.0" encoding = "UTF-8"?> <AppsForYourDomainErrors> <error errorCode = "1303" invalidInput = "[email protected]" reason = "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);
      }
    }

Ответы на вопрос(1)

Ваш ответ на вопрос