网络应用

如果您要为某个脚本构建界面,可以将该脚本发布为 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 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
}

将脚本部署为 Web 应用

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

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

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

测试 Web 应用部署

如需将脚本作为 Web 应用进行测试,请按以下步骤操作:

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

    此网址以 /dev 结尾,只有拥有编辑权限的用户才能访问 添加到脚本中。此应用实例始终运行最近保存的那个 并且仅用于开发期间的测试。

权限

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

  • Execute the app as me - 在这种情况下,脚本始终会执行 您(即脚本的所有者)的身份,无论谁访问此 Web 应用。
  • 以访问 Web 应用的用户的身份执行应用 - 在这种情况下,脚本 以 Web 应用的活跃用户的身份运行。此权限 方法会导致 Web 应用在以下情况下显示脚本所有者的电子邮件地址: 授予访问权限。

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

要在 Google 协作平台中嵌入 Web 应用,必须先 已部署。您 需要 Deploy 对话框中的 Deployed 网址

将 Web 应用嵌入到协作平台 页面,请按以下步骤操作:

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

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

Web 应用和浏览器历史记录

可取的做法是让 Apps 脚本 Web 应用模拟多页页面 应用或带有通过网址参数控制的动态界面的应用。 为了做到这一点,您可以定义一个状态对象来表示应用的 UI 或页面,并将状态作为 用户浏览您的应用您还可以监听历史记录事件 当用户使用 浏览器按钮。通过在加载时查询网址参数,您可以 应用根据这些参数动态构建界面,让用户能够 以特定状态启动应用

Apps 脚本提供两个异步客户端 JavaScript API 来协助 创建与浏览器历史记录相关联的 Web 应用:

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

  • google.script.url 提供 检索当前网页的网址参数和网址片段的方法(如果 它们存在。

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