如果您為指令碼建立使用者介面,可以將指令碼發布為 網頁應用程式。例如能讓使用者安排預約的指令碼 支援團隊的成員應以網頁應用程式形式呈現 可以直接在瀏覽器中存取這項工具
獨立指令碼和 繫結至 Google Workspace 應用程式 轉換成 網頁應用程式,前提是必須符合下列需求條件。
網頁應用程式規定
指令碼必須符合以下需求條件,才能以網頁應用程式形式發布:
- 其中包含
doGet(e)
或doPost(e)
函式。 - 此函式會傳回 HTML 服務
HtmlOutput
物件或 內容服務TextOutput
物件。
要求參數
當使用者造訪應用程式或程式時,傳送 HTTP GET
要求時,
Apps Script 會執行 doGet(e)
函式。程式向應用程式傳送 HTTP 要求時
POST
要求,Apps Script 將改為執行 doPost(e)
。在這兩種情況下,e
引數代表事件參數,可包含
請求參數事件物件的結構會顯示在表格中
如下:
欄位 | |
---|---|
e.queryString |
網址查詢字串部分的值,如果未指定查詢字串,則為 name=alice&n=1&n=2 |
e.parameter |
與要求參數對應的鍵/值組合物件。 如果參數有多個值,系統只會傳回第一個值。 {"name": "alice", "n": "1"} |
e.parameters |
與 {"name": ["alice"], "n": ["1", "2"]} |
e.pathInfo |
|
e.contextPath |
不使用,一律為空白字串。 |
e.contentLength |
POST 要求的要求主體長度,GET 要求長度則為 332 |
e.postData.length |
與「 332 |
e.postData.type |
POST 內文的 MIME 類型 text/csv |
e.postData.contents |
POST 內文的內容文字 Alice,21 |
e.postData.name |
值一律為「postData」 postData |
舉例來說,您可以傳遞 username
和 age
等參數
如下圖所示:
https://script.google.com/.../exec?username=jsmith&age=21
接著,您可以如下所示顯示參數:
function doGet(e) {
var params = JSON.stringify(e);
return ContentService.createTextOutput(params).setMimeType(ContentService.MimeType.JSON);
}
在上述範例中,doGet(e)
傳回下列輸出內容:
{
"queryString": "username=jsmith&age=21",
"parameter": {
"username": "jsmith",
"age": "21"
},
"contextPath": "",
"parameters": {
"username": [
"jsmith"
],
"age": [
"21"
]
},
"contentLength": -1
}
將指令碼部署為網頁應用程式
如要將指令碼部署為網頁應用程式,請按照下列步驟操作:
- 按一下指令碼專案右上方的「部署」>新增部署作業。
- 在「選取類型」旁邊按一下「啟用部署類型」 >網頁應用程式。
- 在「部署作業」下方的欄位輸入網頁應用程式的資訊 「設定」
- 按一下「部署」。
您可以將網頁應用程式網址分享給您要使用應用程式的對象。 前提是您已授予相關權限
測試網頁應用程式部署作業
如要以網頁應用程式形式測試指令碼,請按照下列步驟操作:
- 按一下指令碼專案右上方的「部署」>「部署」測試 包括 Deployment
- 在「選取類型」旁邊按一下「啟用部署類型」 >網頁應用程式。
- 按一下網頁應用程式網址下方的「複製」。
將網址貼到瀏覽器中,並測試網頁應用程式。
這個網址結尾為
/dev
,僅供擁有編輯權限的使用者存取 加入指令碼這個應用程式的執行個體一律會執行最近儲存的項目 ,僅供在開發期間測試使用。
權限
網頁應用程式的權限會因您選擇執行的方式而異 應用程式:
- 以我的身分執行應用程式:在這種情況下,指令碼一律會執行 就像您一樣:指令碼擁有者,不分存取網頁應用程式的人。
- 以存取網頁應用程式的身分執行應用程式 - 在這個例子中,指令碼 會透過網頁應用程式,在活躍使用者的身分下執行。這項權限 ,網頁應用程式就會在當使用者執行這個動作時,顯示指令碼擁有者的電子郵件地址 授權存取。
在 Google 協作平台中嵌入網頁應用程式
如要將網頁應用程式嵌入 Google 協作平台,首先必須
已部署。以及
需要 Deploy
對話方塊中的「部署的網址」。
如何將網頁應用程式嵌入協作平台 頁面,請按照下列步驟操作:
- 開啟要新增網頁應用程式的協作平台頁面。
- 選取「插入」>嵌入網址。
- 貼上網頁應用程式網址,然後按一下「新增」。
網頁應用程式會顯示在頁面預覽畫面的頁框中。發布時 你的網站訪客可能需要先授權網頁應用程式 正常執行。未經授權的網頁應用程式會向以下使用者顯示授權提示: 使用者。
網頁應用程式和瀏覽器記錄
您最好讓 Apps Script 網頁應用程式模擬多頁 或透過網址參數控制動態 UI。 為了有效達成此目標,您可以定義狀態物件來代表應用程式的 使用者介面或網頁,然後將狀態推送到瀏覽器歷史記錄中 來瀏覽及瀏覽您的應用程式你也可以監聽歷史記錄事件,讓網路 當使用者利用 瀏覽器按鈕。在載入時查詢網址參數 應用程式會根據這些參數動態建構 UI,讓使用者 在特定狀態下啟動應用程式
Apps Script 提供兩個非同步用戶端 JavaScript API, 建立連結至瀏覽器歷史記錄的網頁應用程式:
google.script.history
敬上 提供可動態回應瀏覽器記錄變更的方法。這個 包括:將狀態 (可定義的簡單物件) 推送到瀏覽器 記錄、替換記錄堆疊中的頂端狀態,以及設定事件監聽器 回應記錄變更的回呼函式。google.script.url
提供 如何擷取目前網頁的網址參數和網址片段 (如果有的話) 而非即時的位置
這些記錄 API 僅適用於網頁應用程式。他們不是 側欄、對話方塊或外掛程式。此外,這項功能 不建議用於 嵌入 Google 協作平台的網頁應用程式。