Sử dụng Google Apps Email Settings API đại biểu sẽ bị xóa với tập lệnh bên dưới. Nếu xảy ra lỗi, ví dụ cố gắng để xóa các đại biểu rằng không tồn tại, được thông báo sau sẽ được trả về:muteHttpExceptions = true ném lỗi xác thực
Ngoại lệ: Yêu cầu thất bại cho trả về mã 400. rút gọn máy chủ phản ứng: phiên bản < xml = "1.0" encoding = "UTF-8"? > < AppsForYourDomainErrors > < lỗi errorCode = "1303" invalidInput = "[email protected]" Lý do = "E ... (sử dụng muteHttpExceptions tùy chọn để kiểm tra phản ứng đầy đủ)
Tuy nhiên khi sử dụng muteHttpExceptions = true
sự thẩm định thất bại:
Ngoại lệ: không thể xác thực cho dịch vụ: google
Điều này buộc tôi phải sử dụng cấu trúc try/catch thay vì kiểm tra đối tượng HTTPResponse
. Tôi muốn biết tại sao điều này xảy ra và cách giải quyết nó.
Chức năng kiểm tra:
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);
}
}