Как создать отдельное черновик сообщения из моего дополнения Gmail, когда пользователь уже находится в композиторе? - PullRequest
0 голосов
/ 07 декабря 2018

Вариант использования:

Я разрабатываю надстройку Gmail.

В моем дополнении есть кнопка запуска композитора, которая будет включать в себя вложения, взятые измой веб-сайт.Когда возникает какая-либо ошибка, я хотел бы предоставить кнопку Сообщить о проблеме , которая создаст черновик письма на мой адрес электронной почты со значением пользователя activeUserKey (Session.getTeoraryActiveUserKey ()).

Выпуск:

Я могу использовать приведенную ниже функцию для создания черновика письма.

GmailApp.createDraft (получатель, тема,тело, параметры)

Но для этого требуется токен доступа.Итак, я попытался использовать приведенную ниже функцию

GmailApp.setCurrentMessageAccessToken (accessToken);

Моя проблема заключается в том, как я могу получить этот accessToken из объекта события из композитора?

event.messageMetadata.accessToken доступно при открытии любого электронного письма.Но при запуске моей функции обратного вызова у меня был открыт только композитор, поэтому у моего объекта события нет никаких messageMetadata.

Есть ли другой альтернативный вариант создания черновика почты без использования accessToken / каким-либо другим способом получить accessToken из окна композитора?

1 Ответ

0 голосов
/ 18 февраля 2019

Поскольку окно композитора уже открыто и с того места, где вы открыли надстройку, должно работать следующее.Это должно быть внутри функции, которая вызывается с помощью кнопки setOnClickAction.Единственное, что я не пробовал, это изменить / добавить получателя.Дайте мне знать, если это работает.

Тогда вашей функции просто нужно вернуть updateDraftBodyAction.

var updateDraftActionResponse = CardService.newUpdateDraftActionResponseBuilder()
  .setUpdateDraftBodyAction(CardService.newUpdateDraftBodyAction()
  .addUpdateContent("<a href=\"https://www.google.com\">Google</a>",
            CardService.ContentType.MUTABLE_HTML)

  .setUpdateType(CardService.UpdateDraftBodyType.IN_PLACE_INSERT))
  .build();

return updateDraftActionResponse;

Вы можете проверить пример кода Google здесь https://developers.google.com/gmail/add-ons/how-tos/extending-compose-ui

...