Menulis draf pesan

Di Add-on Google Workspace, Anda dapat membuat widget yang telah menautkan tindakan. Anda dapat menggunakan tindakan untuk menulis draf email baru, dan secara opsional mengisinya menggunakan informasi yang dimasukkan ke dalam UI add-on atau informasi dari pesan yang terbuka. Misalnya, Anda dapat memiliki tombol di UI pesan add-on yang membuat balasan untuk pesan yang sedang dibuka dan telah diisi sebelumnya dengan informasi dari add-on.

Saat tindakan yang membangun pesan dipicu, Gmail akan menjalankan callback fungsi untuk membuat dan mengembalikan draf. Gmail kemudian menampilkan draf itu di UI di jendela tulis email standar, yang kemudian dapat diedit dan dikirim pengguna secara permanen sesuai kebutuhan.

Mengonfigurasi tindakan untuk membuat pesan draf

Untuk mengonfigurasi widget guna memulai tindakan pembuatan draf saat dipilih, Anda harus lakukan hal berikut:

  1. Pastikan manifes Anda mencakup Cakupan action.compose:

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

    Anda dapat menggunakan cakupan yang lebih permisif, tetapi sebaiknya hanya jika ruang lingkup itu benar-benar diperlukan.

  2. Membuat objek Action dan mengaitkannya dengan fungsi callback yang Anda tentukan.

  3. Panggil setComposeAction() widget fungsi pengendali widget, dengan memberikan Action dan menentukan ComposeEmailType.

  4. Implementasikan fungsi callback yang menjalankan tindakan pembuatan draf. Ini diberi objek peristiwa sebagai argumen. Fungsi callback harus melakukan hal berikut:

    1. Membuat GmailDraft .
    2. Membuat ComposeActionResponse menggunakan ComposeActionResponseBuilder dan GmailDraft .
    3. Tampilkan ComposeActionResponse yang dibangun.

Anda dapat mengisi otomatis GmailDraft yang Anda buat di fungsi callback dengan penerima, subjek, isi pesan, dan lampiran. Untuk mengisi draf, data dapat berasal dari sumber apa pun, tetapi biasanya berasal dari informasi yang disediakan ke add-on itu sendiri, informasi dalam pesan yang terbuka, atau informasi yang dikumpulkan dari layanan pihak ketiga. Tujuan objek peristiwa yang diteruskan ke fungsi callback berisi ID pesan yang terbuka dan add-on lainnya yang dapat Anda gunakan untuk mengisi otomatis draf.

Anda dapat membuat draf sebagai pesan mandiri baru atau balasan ke pesan yang sudah ada. Hal ini dikontrol oleh ComposeEmailType enum yang diberikan ke setComposeAction(). Anda dapat membuat draf balasan sebagai balasan tunggal atau 'balas semua' membuat pesan teks.

Draf mandiri

Draf mandiri memulai rangkaian pesan baru dan bukan balasan untuk rangkaian pesan yang sudah ada untuk membuat pesan email baru. Anda dapat membuat draf mandiri dengan salah satu Fungsi layanan Gmail:

Draf balasan

Draf balasan adalah bagian dari rangkaian pesan yang sudah ada. Draf balasan dapat balasan tunggal yang hanya dikirimkan ke pengirim pesan atau "balas ke semua" draf yang dikirimkan kepada semua orang yang menerima pesan tersebut. Anda dapat membuat membalas draf dengan salah satu layanan Gmail ini fungsi-fungsi:

Contoh

Cuplikan kode berikut menunjukkan cara menetapkan tindakan yang membuat balasan draf menjadi sebuah tombol.

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