将外部JavaScript导入到Google应用脚本

35

我正在尝试从谷歌电子表格(Google Docs)中使用Trello,但不确定如何导入/引用/链接所需的javascript文件以使用其库。我的另一个选择是直接使用他们的REST API(可以,但我宁愿使用他们的js助手类)。

这是Trello要求我们使用的:

 <script src="http://code.jquery.com/jquery-1.7.1.min.js"></script>
 <script src="https://api.trello.com/1/client.js?key=substitutewithyourapplicationkey"</script>

我该如何在Google Apps Script中导入/包含它们?

5个回答

51

根据Cameron Roberts在此处的回答,您可以在appscript UrlFetchApp功能上使用eval()函数。

eval(UrlFetchApp.fetch('http://path.to/external/javascript.js').getContentText());

12
太好了。我成功地将moment.js导入我的Google应用脚本代码,方法如下:eval(UrlFetchApp.fetch('https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.17.1/moment.min.js').getContentText()); 然后,我按以下方式添加了一个日历条目: //将年份添加到日期中 var result = moment(date).add(numberOfYears, 'years').format("MMMM DD, YYYY"); var event = CalendarApp.getDefaultCalendar().createAllDayEvent('无论什么截止日期', new Date(result), { guests: 'GuitarViking@example.com', sendInvites: 'true' }); - GuitarViking

6
你实际上可以这样做。在脚本项目中创建另一个新文件,然后只需从源代码复制JavaScript库并保存它,然后从其他文件开始引用它。就是这么简单。
或者你可以创建另一个带有.js库的项目并发布它,然后从调用方项目引用该脚本。除非需要在多个项目中共享,否则我不会这样做。

1
需要注意的是,其他脚本中的函数就像将它们连接在一起一样。无需导入或加载它们。 - styks

3

下载它们并将它们放入脚本中。 REST API 很容易使用。我已经在 AppScript 中使用了 Trello REST。


谢谢。我尝试过了,但是我从 Trello API 网站下载源代码后,在运行脚本时遇到以下问题(指的是已下载的代码):"ReferenceError: "window" is not defined. (line 3, file "TrelloTools")Dismiss" - dixkin
1
Google Apps Script 是服务器端的,因此没有 window 对象。 - Tom Horwood

2
您不能在Google Apps Script中以这种方式使用外部JavaScript库。(您可以在与HtmlService一起使用的HTML文件中执行此操作。由于Trello的许多功能都是客户端的,因此这可能正是您需要的。)
在服务器端的Apps Script中,您应该能够使用this answer中的技术访问库代码。它没有说明,但我想您会将那个eval放在脚本中所有函数之外,以使库中的对象可用于您代码的其余部分。

3
有具体的例子吗?我在谷歌电子表格上尚未成功。 - dixkin

0

是的,您可以在Google脚本中使用JavaScript库。将JavaScript库的所有内容复制并发布到新的GS文件中。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接