Composer des brouillons

.

Dans un module complémentaire Google Workspace, vous pouvez créer des widgets associés à des actions. Vous pouvez utiliser une action pour rédiger de nouveaux brouillons d'e-mail, en les remplissant éventuellement à l'aide des informations saisies dans l'interface utilisateur du module complémentaire ou de celles d'un message ouvert. Par exemple, l'interface utilisateur des messages de votre module complémentaire peut inclure un bouton qui crée une réponse au message actuellement ouvert, préremplie avec les informations du module complémentaire.

Lorsqu'une action qui génère des messages est déclenchée, Gmail exécute une fonction de rappel pour compiler et renvoyer le brouillon. Gmail affiche ensuite ce brouillon dans son interface utilisateur, dans une fenêtre de rédaction standard que l'utilisateur peut ensuite modifier et envoyer selon ses besoins.

Configurer une action pour créer un brouillon de message

Pour configurer un widget afin qu'il lance une action de création de brouillon lorsqu'il est sélectionné, procédez comme suit:

  1. Assurez-vous que votre fichier manifeste inclut le champ d'application action.compose:

    https://www.googleapis.com/auth/gmail.addons.current.action.compose

    Vous pouvez utiliser un champ d'application plus permissif à la place, mais ne le faites que si ce champ d'application est absolument nécessaire.

  2. Créez un objet Action et associez-le à une fonction de rappel que vous définissez.

  3. Appelez la fonction de gestionnaire de widgets setComposeAction() du widget en lui fournissant l'objet Action et en spécifiant ComposeEmailType.

  4. Implémentez la fonction de rappel qui exécute l'action de compilation du brouillon. Un objet d'événement est attribué à cette fonction en tant qu'argument. La fonction de rappel doit effectuer les opérations suivantes:

    1. Créez un objet GmailDraft.
    2. Créez un objet ComposeActionResponse à l'aide de la classe ComposeActionResponseBuilder et de l'objet GmailDraft.
    3. Renvoyez le ComposeActionResponse créé.

Vous pouvez préremplir le GmailDraft que vous avez créé dans la fonction de rappel avec les destinataires, un objet, le corps du message et des pièces jointes. Pour remplir le brouillon, les données peuvent provenir de n'importe quelle source, mais elles proviennent généralement des informations fournies au module complémentaire lui-même, des informations du message ouvert ou des informations recueillies auprès d'un service tiers. L'objet d'événement transmis à la fonction de rappel contient l'ID du message ouvert et d'autres informations complémentaires que vous pouvez utiliser pour préremplir le brouillon.

Vous pouvez créer le brouillon en tant que nouveau message autonome ou en réponse à un message existant. Ceci est contrôlé par l'énumération ComposeEmailType attribuée au setComposeAction(). Vous pouvez créer des brouillons de réponse sous forme de réponses uniques ou de messages de type "Répondre à tous".

Brouillons autonomes

Un brouillon autonome lance un nouveau fil de discussion et ne répond à aucun message existant. Vous pouvez créer un brouillon autonome avec l'une des fonctions du service Gmail suivantes:

Brouillons de réponse

Un brouillon de réponse fait partie d'un fil de discussion existant. Les brouillons de réponse sont soit des réponses uniques qui ne sont envoyées qu'à l'expéditeur d'un message, soit des brouillons de type "Répondre à tous" qui sont envoyés à tous les destinataires du message. Vous pouvez créer un brouillon de réponse avec l'une de ces fonctions du service Gmail:

Exemple

L'extrait de code suivant montre comment attribuer une action qui crée un brouillon de réponse à un bouton.

  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 An event object passed by the action.
   *  @return {ComposeActionResponse}
   */
  function createReplyDraft(e) {
    // Activate temporary Gmail scopes, in this case to allow
    // a reply to be drafted.
    var accessToken = e.gmail.accessToken;
    GmailApp.setCurrentMessageAccessToken(accessToken);

    // Creates a draft reply.
    var messageId = e.gmail.messageId;
    var message = GmailApp.getMessageById(messageId);
    var draft = message.createDraftReply('',
        {
            htmlBody: "Kitten! <img src='cid:kitten'/>",
            attachments: [
              UrlFetchApp.fetch('https://example.com/images/myDog.jpg')
                  .getBlob()
            ],
            inlineImages: {
              "kitten": UrlFetchApp.fetch('https://example.com/images/myKitten.jpg')
                           .getBlob()
            }
        }
    );

    // 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();
  }