Использование CardService с HtmlService - PullRequest
0 голосов
/ 15 мая 2018

Надстройки Google поворачиваются к использованию виджетов CardService.Я пытаюсь создать раскрывающееся меню, но класс ListBox устарел.Документы перенаправили меня в службы HTML, но нигде нет документации о том, как их использовать в контексте CardServices.Вот мой код:

GetContextualAddOn.gs

function createReply(e) {
  var accessToken = e.messageMetadata.accessToken;
    GmailApp.setCurrentMessageAccessToken(accessToken);

  var messageId = e.messageMetadata.messageId;
    var message = GmailApp.getMessageById(messageId);
    var draft = message.createDraftReply("Got your message");

    return CardService.newComposeActionResponseBuilder()
        .setGmailDraft(draft).build();
}



function getContextualAddOn() {
  var card = CardService.newCardBuilder();
  card.setHeader(CardService.newCardHeader().setTitle('Respond to Email'));
  var section = CardService.newCardSection();
  var action = CardService.newAction().setFunctionName('createReply');

  function doGet() {
    return HtmlService.createHtmlOutputFromFile('dropdown');
  }

  section.addWidget(CardService
                    .newTextButton()
                    .setText('Respond')
                    .setComposeAction(action, CardService.ComposedEmailType.REPLY_AS_DRAFT));

  card.addSection(section);

  return [card.build()];
}

Показанный выше метод doGet () пытается получить доступ к созданному мной файлу dropdown.html:

**dropdown.html**
<!DOCTYPE html>
<html>
  <head>
    <base target="_top">
  </head>
  <body>
    <p>test</p>
  </body>
</html>

Как бы я интегрировал HTML в мою текущую card.build?Должен ли я подходить к этому по-другому, и если да, может ли кто-нибудь предоставить пример кода?

Ответы [ 2 ]

0 голосов
/ 08 июня 2018

По моему мнению, вы еще не можете использовать пользовательский HTML в дополнениях Gmail. Однако вы можете использовать их в дополнении "Документы / листы Google", используя службу HTML.

В дополнениях Gmail вы можете использовать правильный ввод выбора в службе карт, чтобы создать раскрывающееся поле. Официальный документ здесь: https://developers.google.com/apps-script/reference/card-service/selection-input

Используйте тип ввода выбора как CardService.SelectionInputType.DROPDOWN

Вот пример кода, с которого можно начать:

var card = CardService.newCardBuilder();
card.setHeader(CardService.newCardHeader().setTitle('Dropdown Sample Card'));
var dropdownSection = CardService.newCardSection();
var dropdown = CardService.newSelectionInput()
   .setType(CardService.SelectionInputType.DROPDOWN)
   .setTitle("A Dropdown. Only a single selection is allowed.")
   .setFieldName("dropdown_field")
   .addItem("option one title", "option_one_value", true)
   .addItem("option  two title", "option_two_value", false)
   .addItem("option  three title", "option_three_value", false);

dropdownSection.addWidget(dropdown);
card.addSection(dropdownSection);
return [card.build()];
0 голосов
/ 15 мая 2018

Сервис CardService может использоваться только с надстройками Gmail.Они недоступны в надстройках Документов Google или в веб-приложениях, созданных с помощью Apps Script.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...