Использование Gmail gapi для отправки электронной почты с «общего» единого аккаунта - PullRequest
0 голосов
/ 12 октября 2018

Я играл с 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);
})
};
...