动手使用Google Apps脚本:用4行代码访问Google表格,地图和Gmail!

在此代码实验室中,我们将向您介绍最简单的编写访问Google开发人员技术的代码的方法之一。所有这些都是通过应用JavaScript(一种主流的Web开发语言)来完成的。使用Google Apps脚本,您将编写代码从Google表格中的单元格中提取街道地址,基于该地址生成Google Map,然后使用Gmail作为附件发送地图。最好的部分?它只会是四行代码。

您将学到什么

  • 如何将Google Apps脚本与各种Google服务(例如Google表格,Google地图和Gmail)一起使用。
  • 使用浏览器内的Apps Script编辑器来开发代码。

你需要什么

  • 可以访问互联网的网络浏览器
  • Google帐户(Google Workspace帐户可能需要管理员批准)
  • 基本熟悉Google表格
  • 能够阅读图纸A1表示法

您将如何使用此代码实验室/教程?

仅阅读阅读并完成练习

您如何评价自己使用Google Workspace开发人员工具和API的体验?

新手中间的精通

既然您知道了此代码实验室的含义,那么您将要做什么?

  1. 了解一些有关基于JavaScript的Apps脚本的信息。
  2. 创建一个Google表格电子表格。
  3. 在电子表格的左上角单元格(A1)中输入街道地址。
  4. 了解如何打开任何文档的Apps脚本编辑器。
  5. 编辑Apps脚本代码,保存并运行它。
  6. 使用Gmail查看结果。

让我们开始吧。

什么是Google Apps脚本?

Google Apps脚本是一个开发平台,可让您轻松快捷地创建与Google Workspace集成的脚本和小型应用程序。使用Apps脚本,您可以:

  • 用JavaScript编写代码,并访问Google Workspace应用程序(例如Gmail,日历,云端硬盘等)的内置库。
  • 无需安装任何软件,我们会在您的浏览器中为您提供代码编辑器,并且您的脚本在Google的服务器上运行。
  • 无需担心复杂的主题,例如安全性和数据访问权限,因为该平台会为您处理。

Apps脚本可用于创建各种应用程序,从聊天机器人到网络应用程序。最受欢迎的用途之一是扩展Google表格电子表格的功能。在本代码实验室的其余部分,您将学习如何使用Apps Script从电子表格中获取数据并将其连接到其他Google服务。

请按照以下说明在新的Google表格中输入有效的街道地址:

  1. 使用此便捷链接( sheets.google.com/create )创建一个Google表格。或者,转到您的Google云端硬盘( drive.google.com ),然后单击“新建” >“ Google表格” >“空白电子表格”

413a93e5b2f6b3d4.png

  1. 在空白电子表格中,转到左上角的第一个单元格(A1)。它将在A列和第1行中。如果您需要重新熟悉一下,可以查看一下对A1表示法的描述
  2. 在单元格中输入有效的街道地址。使用街道地址,邮政编码/邮政编码或城市与​​州/省的组合,在世界上选择一个确切位置的地址。这是纽约市地址的示例:

7077e446455639df.png

这就是您在工作表中要做的所有事情。让我们打开编辑器并编写一些代码。

现在您有了新的Google表格,是时候编辑其绑定脚本了。请遵循以下指示:

打开脚本编辑器

在菜单栏上,选择“工具”>“脚本编辑器”以打开Apps Script的浏览器代码编辑器。

74b1bcb1ed0b3a28.png

在新的浏览器选项卡中,代码编辑器显示工作表的默认容器绑定脚本。将自动创建一个名为myFunction()默认函数,并将光标置于该函数内部,以便您开始使用。

通过电子邮件发送该地址的Google地图

您获得的“模板”代码为空,因此我们将其替换为我们的应用程序。

  1. 在脚本编辑器中,将默认的myFunction()代码块替换为以下代码:
/** @OnlyCurrentDoc */
function sendMap() {
  var sheet = SpreadsheetApp.getActiveSheet();
  var address = sheet.getRange('A1').getValue();
  var map = Maps.newStaticMap().addMarker(address);
  GmailApp.sendEmail('YOUR_EMAIL_ADDR', 'Map', 'See below.', {attachments:[map]});
}
  1. 将占位符的电子邮件地址( 'YOUR_EMAIL_ADDR' )替换为有效的电子邮件地址。例如, friend @ example.com
  2. 要保存脚本,请单击“保存”。 保存
  3. 要重命名您的Apps Script项目,请点击无标题项目,为您的项目输入标题,然后点击重命名

代码审查

让我们回顾一下构成整个应用程序的sendMap()函数的4行。有趣的是,该代码引用了3种不同的Google产品。

第一行是影响授权的注释注释:

/** @OnlyCurrentDoc */

大多数脚本在运行之前都会向用户询问一些权限。这些权限控制用户允许脚本执行的操作。第一行是一个注释,其中包含一个可选的注释,该注释指示Apps脚本限制对当前电子表格(而不是所有用户电子表格)的访问。仅在处理单个文件时,最好始终包括此注释。

该代码对sendMap()使用普通的JavaScript函数声明:

function sendMap() {

下一行调用通过SpreadsheetApp对象可从Apps脚本访问的Spreadsheet服务。返回的工作表分配给同名变量。 getActiveSheet()方法获取对当前工作表对象的引用,并将其存储在可变工作sheet

  var sheet = SpreadsheetApp.getActiveSheet();

对于工作sheet对象,我们使用getRange()A1表示法getRange()单个单元格的)单元格范围。 “范围”是一组单元格,包括一个像单元格A1一样的单元格(我们在其中输入地址的单元格)。抓取有什么范围,所述getValue()方法返回值的范围和分配给值给变量的左上单元格的值address 。您也可以尝试添加更多地址并从其他单元格中读取。

  var address = sheet.getRange('A1').getValue();

第三行代码使用Maps对象连接到Google Maps ServicenewStaticMap()创建一个静态地图对象,而addMarker()方法使用图纸中的地址向地图添加一个“ pin”。

  var map = Maps.newStaticMap().addMarker(address);

最后, Gmail服务通过MailApp对象调用sendEmail()方法来发送包含文本“请参阅下文”的电子邮件。和地图图片作为附件。

  GmailApp.sendEmail('friend@example.com', 'Map', 'See below.', {attachments:[map]});
}

命名并保存后,就可以运行该功能了。在编辑器顶部,确保从函数列表中选择sendMap() ,然后单击Run

开发人员欣赏的Apps脚本功能是,您不必编写授权代码即可授予程序对用户数据的访问权限。尽管由Apps Script进行管理,但您的应用程序的用户仍然需要授予该脚本的访问权限,以访问其电子表格并通过Gmail发送电子邮件。第一个授权对话框如下所示:

ba6e1a798e404e0d.png

单击查看权限以继续。

接下来,您将获得OAuth2对话窗口,询问您访问工作表并代表您发送电子邮件的权限:

9bed7ef1ccbd7569.png

授予权限后,脚本将运行到完成。

检查您发送消息的电子邮件帐户,您应该找到一封以“地图”为主题的电子邮件,以及如下消息:

51f61fc51a13d28f.png

当您打开电子邮件中的附件时,您应该会得到一张Google地图,其中在您输入工作表的地址上带有图钉:

739bb45b75e3f7c7.png

仅用四行代码,您就可以有意义地访问3种不同的Google产品。

该代码实验室中提供的代码也可以在其GitHub存储库中找到,网址github.com/googlecodelabs/apps-script-intro 。以下是更多资源,可帮助您更深入地了解本代码实验室中的内容,并探索以编程方式访问Google开发人员工具的其他方式。

文献资料

影片

新闻与更新

其他代码实验室

介绍性

中间的

参考应用