Скрипт приложений — Дополнение Gmail — Получение выделенного текста в сообщении Gmail

#javascript #google-apps-script

Вопрос:

Я разрабатываю дополнение Gmail, и мне нужно выбрать/выделить текст в сообщении Gmail с помощью скрипта Google Apps. Я могу получить весь текст сообщения с помощью следующего кода, но, похоже, не могу найти способ получить выделенный текст.

 function onGmailMessage(e) {

  // Get the ID of the message the user has open.
  var messageId = e.gmail.messageId;

  // Get an access token scoped to the current message and use it for GmailApp
  // calls.
  var accessToken = e.gmail.accessToken;
  GmailApp.setCurrentMessageAccessToken(accessToken);

  // Get the subject of the email.
  var message = GmailApp.getMessageById(messageId);
} 
 

Комментарии:

1. Что вы подразумеваете под «выбранным»? Вы имеете в виду текст, который пользователь выбирает вручную при чтении сообщения из пользовательского интерфейса в своем браузере?

2. Да, когда мы вручную выбираем текст в сообщении gmail.

Ответ №1:

Невозможно получить выделенный текст сообщения Gmail на стороне клиента на стороне сервера с помощью скрипта API / приложений Gmail

Надстройка Gmail может выдавать вам следующие объекты событий при срабатывании триггера:

  • gmail.доступ
  • gmail.bccRecipients[]
  • gmail.ccRecipients[]
  • gmail.MessageId
  • gmail.ThreadId
  • gmail.тоРеципиенты[]

Ресурс сообщений Gmail содержит следующую информацию:

 {
  "id": string,
  "threadId": string,
  "labelIds": [
    string
  ],
  "snippet": string,
  "historyId": string,
  "internalDate": string,
  "payload": {
    object (MessagePart)
  },
  "sizeEstimate": integer,
  "raw": string
}
 

При этом эта информация доступна только для сохраненных отправленных / возвращенных сообщений или СОХРАНЕННЫХ черновиков.

К сожалению, надстройка Gmail (в отличие от надстройки Docs) не имеет доступа к тексту, который вводится / выбирается на стороне клиента в модуле черновика.

Если эта функция имеет решающее значение для вашего приложения, вам нужно будет изменить направление и рассмотреть, например, расширение Chrome, в котором можно было бы очистить содержимое на стороне клиента с помощью HTML / Javascript.