Web 应用

使用集合让一切井井有条 根据您的偏好保存内容并对其进行分类。

如果您为脚本构建了界面,可以将该脚本作为 Web 应用发布。例如,如果允许用户安排与支持团队成员的预约,则该脚本最好呈现为 Web 应用,以便用户直接通过浏览器访问。

独立脚本绑定到 Google Workspace 应用的脚本只要符合以下要求,都可以转换为 Web 应用。

Web 应用的要求

如果脚本满足以下要求,则可作为 Web 应用发布:

请求参数

当用户访问应用或程序向应用发送 HTTP GET 请求时,Apps 脚本会运行 doGet(e) 函数。当程序向应用发送 HTTP POST 请求时,Apps 脚本会改为运行 doPost(e)。在这两种情况下,e 参数都表示一个事件参数,其中包含有关任何请求参数的信息。事件对象的结构如下所示:

字段
e.queryString

网址的查询字符串部分的值,如果未指定查询字符串,则为 null

name=alice&n=1&n=2
e.parameter

与请求参数对应的键值对的对象。 只有具有多个值的参数才会返回第一个值。

{"name": "alice", "n": "1"}
e.parameters

一个类似于 e.parameter 的对象,但每个键都有一个值数组

{"name": ["alice"], "n": ["1", "2"]}
e.pathInfo

/exec/dev 后面的网址路径。 例如,如果网址路径以 /exec/hello 结尾,则路径信息为 hello

e.contextPath 不使用,始终为空字符串。
e.contentLength

POST 请求的请求正文的长度,或 GET 请求的 -1 长度

332
e.postData.length

e.contentLength 相同

332
e.postData.type

POST 正文的 MIME 类型

text/csv
e.postData.contents

POST 正文的内容文本

Alice,21
e.postData.name

值“postData”始终为

postData

例如,您可以将 usernameage 等参数传递到网址,如下所示:

https://script.google.com/.../exec?username=jsmith&age=21

然后,您可以按如下方式显示参数:

function doGet(e) {
  var params = JSON.stringify(e);
  return HtmlService.createHtmlOutput(params);
}

在上面的示例中,doGet(e) 返回以下输出:

{
  "queryString": "username=jsmith&age=21",
  "parameter": {
    "username": "jsmith",
    "age": "21"
  },
  "contextPath": "",
  "parameters": {
    "username": [
      "jsmith"
    ],
    "age": [
      "21"
    ]
  },
  "contentLength": -1
}

将脚本部署为 Web 应用

要将脚本部署为 Web 应用,请按以下步骤操作:

  1. 在脚本项目的右上角,依次点击 Deploy > New deployment
  2. 在“选择类型”旁边,点击“启用部署类型”>Web 应用
  3. 在“部署配置”下的字段中输入 Web 应用的相关信息。
  4. 点击部署

您可以将 Web 应用网址分享给想要使用应用的用户,但前提是您已向他们授予访问权限。

测试 Web 应用部署

如需以 Web 应用的形式测试您的脚本,请按以下步骤操作:

  1. 在脚本项目的右上角,点击 Deploy > Test deployment
  2. 在“选择类型”旁边,点击“启用部署类型”图标 > Web 应用
  3. 在 Web 应用网址下,点击复制
  4. 将网址粘贴到浏览器中并测试 Web 应用。

    此网址以 /dev 结尾,只能由拥有脚本编辑权限的用户访问。该应用的这个实例始终会运行最近保存的代码,仅用于开发期间进行测试。

权限

Web 应用的权限因您选择的执行应用的方式而异:

  • 以我的身份执行应用 - 在这种情况下,无论谁访问 Web 应用,脚本始终以您(脚本所有者)的身份执行。
  • 以 Web 应用的用户的身份执行应用 - 在这种情况下,该脚本会以 Web 应用的活跃用户身份运行。此权限方法会使 Web 应用在用户授予访问权限时让脚本所有者看到电子邮件。

在 Google 协作平台中嵌入您的 Web 应用

您还可以在传统版新版 Google 协作平台中嵌入 Web 应用。

在新版协作平台网站中嵌入 Web 应用

如需嵌入 Web 应用,必须先对其进行部署。您还需要 Deploy 对话框中的已部署的网址

如需将 Web 应用嵌入到新版 Google 协作平台页面中,请按以下步骤操作:

  1. 打开您要添加该 Web 应用的“网站”页面。
  2. 选择插入 &gt 嵌入网址
  3. 粘贴 Web 应用网址,然后点击 ADD

Web 应用会显示在页面预览的框架中。发布该网页时,您的网站查看者可能需要先向 Web 应用授权,然后才能正常执行。未经授权的 Web 应用会向用户显示授权提示。

在传统版协作平台中嵌入 Web 应用

您可以将脚本绑定传统版 Google 协作平台,就像绑定脚本到 Google 文档或表格一样。如需创建绑定脚本,请访问您的网站,点击齿轮图标 设置,然后选择管理网站。在“管理网站”页面上,点击左侧导航栏中的 Apps 脚本,然后点击添加新脚本按钮。此操作会在 Apps 脚本编辑器中打开一个新脚本,您可以在其中编写和部署 Web 应用。

您也可以在网页中嵌入 Web 应用。您可以将 Web 应用绑定到网站,也可以使用具有相应网址的任何 Web 应用。如需将 Web 应用嵌入 Google 协作平台页面,请按以下步骤操作:

  1. 打开您拥有编辑权限的现有网站,或创建一个新网站。
  2. 导航到您的网站中要嵌入 Web 应用的页面。
  3. 点击修改图标,然后点击 Insert > Google Apps Script
  4. 从列表中选择代表您的 Web 应用的脚本。如果您的 Web 应用未绑定到此网站,您可以粘贴 Web 应用网址。
  5. 点击选择按钮,然后从下一个对话框中选择所需选项,然后点击保存
  6. 保存对页面所做的更改,然后您应该会看到自己的 Web 应用已嵌入“网站”页面。

Web 应用和浏览器历史记录

最好让 Apps 脚本 Web 应用模拟多页应用,或者让应用具有通过网址参数控制的动态界面。为了实现这一点,您可以定义一个状态对象来表示应用的界面或页面,并在用户浏览应用时将状态推送到浏览器历史记录中。您还可以监听历史记录事件,以便在用户使用浏览器按钮来回导航时,您的 Web 应用会显示正确的界面。通过在加载时查询网址参数,您的应用可以根据这些参数动态构建其界面,从而允许用户以特定状态启动应用。

Apps 脚本提供了两个异步客户端 JavaScript API,用于协助创建链接到浏览器历史记录的 Web 应用:

  • google.script.history 提供了允许对浏览器历史记录更改动态响应的方法。这包括:将状态(您可以定义的简单对象)推送到浏览器历史记录,替换历史记录堆栈中的顶层状态,以及设置监听器回调函数以响应历史记录更改。

  • google.script.url 提供了检索当前网页的网址参数和网址片段(若存在)的方法。

这些历史记录 API 仅适用于 Web 应用。边栏、对话框或插件不支持它们。Google 协作平台中嵌入的 Web 应用也不建议使用此功能。