メッセージの下書きを作成する

Google Workspace アドオンでは、ウィジェットを作成できる アクションがリンクされています。次を使用: 新しいメールの下書きを作成する操作。必要に応じて アドオン UI に入力された情報、または開いているメッセージからの情報。 たとえば、ニュース メディアの アドオンのメッセージ UI 現在開いているメッセージに対する返信を作成します。 情報を取得します。

メールを作成するアクションがトリガーされると、Gmail はコールバック 関数を使用して下書きを作成して返します。その下書きが Gmail の受信トレイに 標準のメール作成ウィンドウの UI(ユーザーが編集や送信ができる) できます。

下書きメッセージを作成するアクションの構成

選択したときにドラフト作成アクションを開始するようにウィジェットを構成するには、 次の操作を行います。

  1. マニフェストを確認する 含まれる action.compose スコープ:

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

    より制限の緩いスコープを使用することもできますが、その場合は 必要不可欠です

  2. Action オブジェクトを作成する コールバック関数に関連付けます。 使用できます。

  3. ウィジェットの setComposeAction() を呼び出す ウィジェット ハンドラ関数 Action を提供する そのオブジェクトへのアクセスを ComposeEmailType を選択します。

  4. ドラフト作成アクションを実行するコールバック関数を実装します。この 関数にイベント オブジェクトが 渡します。このコールバック関数は、次のことを行う必要があります。

    1. GmailDraft を作成する 渡されます。
    2. ComposeActionResponse を作成する ComposeActionResponseBuilder を使用したオブジェクト クラスと GmailDraft 渡されます。
    3. ビルドされた ComposeActionResponse を返します。

GmailDraft は事前入力できます。 コールバック関数で指定し、 受信者、件名、メール本文、添付ファイルがあります。下書きに入力するには データのソースは問わないが、通常は情報から取得する 開いたメールの情報、または サードパーティ サービスから収集された情報。「 イベント オブジェクト には、オープン メッセージ ID とその他のアドオンが含まれます。 ドラフトの事前入力に使用できる情報が示されます。

下書きは、新しい単独のメッセージまたは返信として作成できます。 既存のメッセージを追加できますこれは Kubernetes によって制御され、 ComposeEmailType 指定された Pod に setComposeAction()。 返信の下書きは、単一の返信または「全員に返信」として作成できます。ブロックすることもできます。

スタンドアロンの下書き

単独の下書きを作成すると、新しいスレッドが開始されます。既存の下書きに対する返信ではありません 表示されます。次のいずれかの方法でスタンドアロンの下書きを作成できます Gmail サービスの機能:

返信の下書き

返信の下書きは既存のメール スレッドの一部です。返信の下書きは次のいずれかです。 メールの送信者にのみ送信される 1 件の返信、または「全員に返信」 そのメールを受信した全員に送信されます新しい 次の Gmail サービスのいずれかを使用して返信の下書き 関数:

次のコード スニペットは、返信を作成するアクションを割り当てる方法を示しています。 ボタンの下書きを作成できます。

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