Menulis draf pesan

Tetap teratur dengan koleksi Simpan dan kategorikan konten berdasarkan preferensi Anda.
Aplikasi Jika Anda ingin add-on mengubah draf yang sedang dilihat pengguna, perluas UI compose.

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

Saat tindakan yang membuat pesan dipicu, Gmail akan menjalankan fungsi callback untuk mem-build dan menampilkan draf. Gmail kemudian menampilkan draf tersebut di UI-nya dalam jendela penulisan email standar, yang kemudian dapat diedit dan dikirim oleh pengguna sesuai kebutuhan.

Mengonfigurasi tindakan untuk membuat pesan draf

Untuk mengonfigurasi widget agar memulai tindakan pembuatan draf saat dipilih, Anda harus melakukan hal berikut:

  1. Pastikan manifes menyertakan cakupan action.compose:

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

    Anda dapat menggunakan lebih banyak cakupan permisif, tetapi hanya boleh menggunakannya jika cakupan tersebut benar-benar diperlukan.

  2. Buat objek Action dan kaitkan dengan fungsi callback yang Anda tentukan.

  3. Panggil setComposeAction() fungsi pemegang widget widget, yang memberikan objek Action dan menentukan ComposeEmailType.

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

    1. Buat objek GmailDraft.
    2. Buat objek ComposeActionResponse menggunakan class ComposeActionResponseBuilder dan objek GmailDraft.
    3. Tampilkan ComposeActionResponse yang di-build.

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

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

Draf mandiri

Draf mandiri akan memulai thread baru dan bukan merupakan balasan untuk pesan yang ada. Anda dapat membuat draf mandiri dengan salah satu fungsi layanan Gmail berikut:

Draf balasan

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

Contoh

Cuplikan kode berikut menunjukkan cara menetapkan tindakan yang membuat draf balasan pada 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();
  }