延伸 Gmail 的 Google Workspace 外掛程式可提供 透過使用者介面存取這樣一來, 運用 Google Workspace 外掛程式自動處理回覆工作 例如顯示、擷取或送出訊息內容 與訊息相關的其他資訊。
存取外掛程式訊息 UI
你可以透過兩種方式查看外掛程式的訊息 UI。第一種是開啟 會在外掛程式開啟時顯示訊息 (例如,在檢視 外掛程式首頁)。第二種方法是 瀏覽訊息時啟動外掛程式。
無論哪一種情況,外掛程式都會執行對應的 情境觸發條件函式,定義位於 外掛程式資訊清單。 如果使用者在 外掛程式仍為開啟狀態情境觸發條件函式會建構訊息 UI 即可在 Gmail 向使用者顯示郵件
建立訊息外掛程式
您可以在外掛程式中新增訊息功能,步驟如下:
- 在外掛程式指令碼專案中新增適當欄位
manifest、
包括
需要範圍
訊息功能。請務必新增
條件式觸發條件欄位
資訊清單
unconditional
敬上{}
的值。 - 實作情境觸發條件函式,用於建構訊息 UI 使用者在訊息中選取外掛程式時。
- 實作回應使用者 UI 所需的關聯函式 互動情形
內容比對觸發條件
如要協助使用者在閱讀郵件時提供協助, Google Workspace 外掛程式可以定義 內容相關觸發條件。當使用者 開啟符合觸發條件的 Gmail 郵件 (已開啟外掛程式) * 條件觸發。觸發的觸發條件會執行 關聯觸發條件,可建構 外掛程式使用者介面,然後將該程式傳回可供 Gmail 顯示。此時 即可開始與容器互動
內容觸發條件是在外掛程式專案中定義
manifest。
觸發條件定義會指示 Gmail 要在哪個情況下觸發
條件。舉例來說,這份資訊清單程式碼片段設定了無條件的觸發條件
以便在開啟訊息時呼叫觸發函式 onGmailMessageOpen()
:
{ ... "addOns": { "common": { ... }, "gmail": { "contextualTriggers": [ { "unconditional": {}, "onTriggerFunction": "onGmailMessageOpen" } ], ... }, ... } ... }
內容比對觸發條件函式
每個內容相關觸發條件都必須有對應的觸發條件函式
來建構外掛程式的使用者介面這個函式會在
資訊清單的 onTriggerFunction
] 欄位。實作這個函式以接受
動作事件物件
引數,然後傳回
Card
物件或
Card
物件。
當特定 Gmail 郵件觸發情境相關觸發條件時,系統會呼叫此方法 並將函式傳送至 動作事件物件。 觸發函式通常會使用這個事件物件提供的訊息 ID 透過 Apps Script 的 Gmail 服務。舉例來說 函式,可使用以下函式擷取訊息內容:
// Activate temporary Gmail scopes, in this case to allow
// the add-on to read message metadata and content.
var accessToken = e.gmail.accessToken;
GmailApp.setCurrentMessageAccessToken(accessToken);
// Read message metadata and content. This requires the Gmail scope
// https://www.googleapis.com/auth/gmail.addons.current.message.readonly.
var messageId = e.gmail.messageId;
var message = GmailApp.getMessageById(messageId);
var subject = message.getSubject();
var sender = message.getFrom();
var body = message.getPlainBody();
var messageDate = message.getDate();
// Setting the access token with a gmail.addons.current.message.readonly
// scope also allows read access to the other messages in the thread.
var thread = message.getThread();
var threadMessages = thread.getMessages();
// Using this link can avoid the need to copy message or thread content
var threadLink = thread.getPermalink();
接著觸發條件函式就能處理這項資料, 介面需求例如提供銷售摘要的外掛程式 號碼可收集訊息內文中的銷售數字,並加以整理 顯示在資訊卡中。
觸發條件函式必須建構並傳回建構的陣列
Card
敬上
如需儲存大量結構化物件
建議使用 Cloud Bigtable舉例來說,下列程式碼會建構一張含有一張卡片的外掛程式
只會列出郵件的主旨和寄件者:
function onGmailMessageOpen(e) {
// Activate temporary Gmail scopes, in this case to allow
// message metadata to be read.
var accessToken = e.gmail.accessToken;
GmailApp.setCurrentMessageAccessToken(accessToken);
var messageId = e.gmail.messageId;
var message = GmailApp.getMessageById(messageId);
var subject = message.getSubject();
var sender = message.getFrom();
// Create a card with a single card section and two widgets.
// Be sure to execute build() to finalize the card construction.
var exampleCard = CardService.newCardBuilder()
.setHeader(CardService.newCardHeader()
.setTitle('Example card'))
.addSection(CardService.newCardSection()
.addWidget(CardService.newKeyValue()
.setTopLabel('Subject')
.setContent(subject))
.addWidget(CardService.newKeyValue()
.setTopLabel('From')
.setContent(sender)))
.build(); // Don't forget to build the Card!
return [exampleCard];
}