Невозможно составить ответ.Ошибка разрешения - PullRequest
0 голосов
/ 10 мая 2018

Я следовал официальным инструкциям https://developers.google.com/gmail/add-ons/how-tos/compose и https://developers.google.com/gmail/add-ons/guides/quickstart

Вот мой appsscript.json:

{
  "oauthScopes": [
    "https://www.googleapis.com/auth/gmail.addons.execute",
    "https://www.googleapis.com/auth/gmail.addons.current.action.compose"
  ],
  "gmail": {
    "name": "Gmail Add-on Quickstart",
    "logoUrl": "https://www.gstatic.com/images/icons/material/system/2x/bookmark_black_24dp.png",
    "contextualTriggers": [{
      "unconditional": {
      },
      "onTriggerFunction": "createReplyDraft"
    }],
    "openLinkUrlPrefixes": [
      "https://mail.google.com/"
    ],
    "primaryColor": "#4285F4",
    "secondaryColor": "#4285F4"
  }
}

и Code.gs как:

  var composeAction = CardService.newAction()
      .setFunctionName('createReplyDraft');
  var composeButton = CardService.newTextButton()
      .setText('Compose Reply')
      .setComposeAction(composeAction, CardService.ComposedEmailType.REPLY_AS_DRAFT);

  // ...




  /**
   *  Creates a draft email (with an attachment and inline image)
   *  as a reply to an existing message.
   *  @param {Object} e data passed by the compose action.
   *  @return {ComposeActionResponse}
   */
  function createReplyDraft(e) {
    // Activate temporary Gmail add-on scopes, in this case to allow
    // a reply to be drafted.
    var accessToken = e.messageMetadata.accessToken;
    GmailApp.setCurrentMessageAccessToken(accessToken);

    // Creates a draft reply.
    var messageId = e.messageMetadata.messageId;
    var message = GmailApp.getMessageById(messageId);
    var draft = message.createDraftReply('',
        {
            htmlBody: "Kitten!"
        }
    );

    // Return a built draft response. This causes Gmail to present a
    // compose window to the user, pre-filled with the content specified
    // above.
    return CardService.newComposeActionResponseBuilder()
        .setGmailDraft(draft).build();
  }

Я хочу открыть панель «Ответить» в моем Gmail и вставить в нее контент.

Выдает ошибку следующую ошибку: с надстройкой.Ошибка выполнения.Отказано в доступе:: невозможно создать без взаимодействия с пользователем. [Строка: 27, функция: createReplyDraft, файл: код]

Я уже много раз переустанавливал модуль и также пытался дать полное разрешение "https://mail.google.com/".

Ответы [ 3 ]

0 голосов
/ 22 мая 2018

Вы не можете запускать действие композитинга напрямую, как это. Вы должны создать виджет кнопки, который связал с ним compose action (ваша функция createReplyDraft). Поэтому, когда пользователь нажимает на эту кнопку, запускается действие compose.

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

Глядя на ваш код, кажется, что вы пытаетесь вызвать функцию CreateReplyDraft, как только надстройка загружена.Google не позволяет этого, пользователь должен будет нажать кнопку в пользовательском интерфейсе, чтобы отслеживать создание черновика.

0 голосов
/ 10 мая 2018

Вы пытались добавить https://www.googleapis.com/auth/gmail.readonly в свою область?

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