То, что я сейчас пытаюсь достичь, - это написать инструмент для обновления всех адресов электронной почты в моем домене с помощью заданной индивидуальной подписи, в которой будут обновляться данные на основе файла CSV, из которого он в настоящее время рисует. В конечном итоге я надеюсь получить всех пользователей в домене, получить сведения о каждом пользователе из Справочника, а затем обновить эти данные, не требуя файла CSV.
На данный момент, однако, возникает более фундаментальная проблема, даже после того, как я подготовил токен доступа после прохождения всего сложного потока, который создает JWT и получает токен доступа через отправку запроса POST конечной точке OAuth2 ( процесс не показан, но он сохранен как accessToken ниже), как мне применить этот токен доступа, созданный с использованием учетных данных моей предварительно подготовленной учетной записи службы, чтобы фактически изменить соответствующую подпись электронного письма, которое я в настоящее время редактирую? (адрес электронной почты ниже CURRENTEMAIL)
function updateSignature(contentToUpdate){
gapi.auth.setToken(accessToken);
// https://developers.google.com/gmail/api/v1/reference/users/settings/sendAs/patch
return gapi.client.gmail.users.settings.sendAs.patch ({
//"auth": accessToken,
"userId": 'me',
"sendAsEmail": CURRENTEMAIL,
"resource": {
"signature": contentToUpdate
}
}).then(function(response) {
console.log("Response", response);
},
function(err) { console.error("Execute error", err);
});
}
До сих пор я получал ошибки idpiframe_initialization_failed при попытке использовать идентификатор клиента учетной записи службы во время инициализации, поэтому я считаю, что это не то, что нужно делать с использованием ключа, и использование вышеописанного метода только сказало мне, что мне нужно отправляйте любые электронные письма, которые не являются моими в настоящий момент зарегистрированными (например, я joey@mydomain.com, в то время как мой измененный адрес электронной почты - testaccount@mydomain.com), а не одним из моих псевдонимов, который не имеет смысла в долгосрочной перспективе запустить. Кто-нибудь знает какие-либо другие способы решения этой проблемы?
Я также пытался изменить идентификатор пользователя на адрес электронной почты учетной записи службы, но это приводило только к ошибкам выполнения, когда указывалось, что в делегировании было отказано.
(index):400 Execute error
{result: {…}, body: "{↵ "error": {↵ "errors": [↵ {↵ "domain": "gl…: "Delegation denied for (redacted)"↵ }↵}↵", headers: {…}, status: 403, statusText: null}
body: "{↵ "error": {↵ "errors": [↵ {↵ "domain": "global",↵ "reason": "forbidden",↵ "message": "Delegation denied for (redacted)"↵ }↵ ],↵ "code": 403,↵ "message": "Delegation denied for (redacted)"↵ }↵}↵"
headers: {date: "Wed, 03 Apr 2019 06:01:10 GMT", content-encoding: "gzip", server: "GSE", content-type: "application/json; charset=UTF-8", vary: "Origin, X-Origin", …}
result: {error: {…}}
status: 403
statusText: null
__proto__: Object
Я изучал эту тему в течение последних нескольких дней, и это единственный метод, который был задокументирован любыми способами, но он влияет только на псевдоним учетной записи gmail, в которой я в данный момент зарегистрирован (например, если я должен был войти в систему как joey@mydomain.com и изменить подпись testaccount@mydomain.com, пока он указан как псевдоним joey@mydomain.com, обновленная подпись отражается там, но не тогда, когда я фактически захожу как testaccount @ mydomain.com)
Я неправильно использую токен доступа или что я должен делать иначе?
Пожалуйста, помогите!