Я играл с Google Gmail API, в надежде найти способ сделать следующее.Android-приложение, которое я создаю, предназначено для закрытой группы пользователей.Все они должны иметь возможность отправлять электронную почту из приложения с одной учетной записью Gmail.
Однако пользователи не имеют прямого доступа к этой учетной записи.Таким образом, электронное письмо должно быть отправлено через учетную запись приложения, без авторизации пользователя.
Мой вопрос: возможно ли сделать эту работу такой, чтобы пользователю не нужно было проходить аутентификацию, и приложение может отправить электронное письмо?напрямую по почте?
Чтобы проиллюстрировать, что я получаю, приведу фрагмент кода.Я не хочу, чтобы пользовательское приложение проходило аутентификацию и позволяло использовать его / ее адрес электронной почты для отправки сообщений от их имени.
Я закомментировал часть, которую я надеюсь получитьизбавиться.
const apiKey = 'this_is_my_apiKey';
const clientId = 'this_is_my_clientId';
const scopes = 'https://www.googleapis.com/auth/gmail.compose ' + 'https://www.googleapis.com/auth/gmail.send';
/*gapi.auth2.authorize({
client_id: clientId,
scope: scopes,
immediate: false
}); */
gapi.client.init({
'apiKey': apiKey,
'clientId': clientId,
'scope': scopes,
'immediate': true
}).then( () => {
return gapi.client.load('gmail', 'v1');
}).catch(error => {
console.log(error);
alert(error.details);
});
sendEmail() {
this.createAndSendMessage({
'To': 'customer_email_address@somewhere.cyberspace',
'Subject': 'Test e-mail',
},
'My mseesage content comes here.',
callback);
return false;
}
createAndSendMessage(headers_obj, message, callback) {
var email = '';
for (var header in headers_obj)
email += header += ": " + headers_obj[header] + "\r\n";
email += "\r\n" + message;
gapi.client.gmail.users.messages.send({
'userId': 'the_app_account@mail.cyberspace',
'resource': {
'raw': window.btoa(email).replace(/\+/g, '-').replace(/\//g, '_')
}
}).then(response => {
console.log(response);
}).catch(error => {
console.log(error);
alert(error);
})
};