I have 4 separate functions, to manage the delegate sin our domain with a service account.
---------------------------------------------------------------------------------------------------------------
function getDelegate(userEmail, delegateEmail) {
var service = getOAuthService(userEmail);
"headers": {
"Authorization": "Bearer " + service.getAccessToken()
}
});
if (response.getResponseCode() == 200) {
var delegate = JSON.parse(response.getContentText());
Logger.log("Delegate details: " + JSON.stringify(delegate));
} else {
Logger.log("An error occurred while retrieving the delegate. Response code: " + response.getResponseCode());
}
}
------------------------------------------------------------------------------------------------------------------------------
/**
* Lists all delegates for a user
* @param {string} userEmail - The email address of the user
* @return {Object} - The list of delegates
*/
function listDelegates(userEmail) {
try{
var response = UrlFetchApp.fetch(url, {
method: "GET",
headers: {
Authorization: "Bearer " + getOAuthService(userEmail).getAccessToken()
}
});
var json = response.getContentText();
var data = JSON.parse(json);
if (data.delegates) {
Logger.log(data.delegates);
return data.delegates;
}
} catch (error) {
Logger.log("listDelegates failed: " + error);
throw error;
}
}
---------------------------------------------------------------------------------------------------------------------
function createDelegate(userEmail, delegateEmail) {
var service = getOAuthService(userEmail);
// Create the delegate
var delegate = {
"delegateEmail": delegateEmail,
"verificationStatus": "accepted"
};
"method": "POST",
"headers": {
"Authorization": "Bearer " + service.getAccessToken(),
"Content-Type": "application/json"
},
"payload": JSON.stringify(delegate)
});
if (response.getResponseCode() == 200) {
Logger.log("Delegate created successfully.");
} else {
Logger.log("An error occurred while creating the delegate. Response code: " + response.getResponseCode());
}
}
------------------------------------------------------------------------------------------------------------------------------------------
function deleteDelegate(userEmail, delegateEmail) {
var service = getOAuthService(userEmail);
"method": "DELETE",
"headers": {
"Authorization": "Bearer " + service.getAccessToken()
}
});
if (response.getResponseCode() == 204) {
Logger.log("Delegate deleted successfully.");
} else {
Logger.log("An error occurred while deleting the delegate. Response code: " + response.getResponseCode());
}
}