如何使用 Google-apps 构建简单的日记应用程序
How to build a simple journaling applications with Google-apps
正如标题所说,我想构建一个具有以下功能的简单应用程序:
- 它由 Chrome 浏览器上的菜单项激活。
点击后会在我的 [=57] 的 特定文件夹 中打开一个 当前日期 的文件=] 文档。
a) 如果文件存在,则:
- 如果已经打开,请将其置于焦点
- 否则,打开它
b) 否则,在指定目录中创建具有当前日期的文件。
在期刊中添加搜索工具
我知道如何实现大部分功能,但以下功能除外:
如何将脚本 link 转换为 menu-item(可能使用仅包含脚本的空白文档)
如何使打开的文档成为焦点。
我尝试在工具中使用带有日期插入的单个文件,但在大小增加后,它变得无法使用。
我找到的所有日记系统都没有提供我要找的东西。
一个简单的解决方案可以满足您的所有需求,但在文件已经打开时将其置于焦点,如下所示:
正在创建 Google Apps 脚本 WebApp。
这里的想法是您可以轻松地创建一个 GAS WebApp,您可以将其添加到浏览器的 Bookmars 栏中。单击它后,它将根据需要创建每日日志文件,然后将您重定向到该文件。您可以看到下面的代码:
var TIMEZONE = 'GMT';
var FOLDER_ID = 'YOUR_FOLDER_ID';
var FILE_NAME_FORMAT = 'yyyy-MM-dd';
function createDocFile(fileName, folder) {
return Drive.Files.insert({
"title": fileName,
"mimeType": "application/vnd.google-apps.document",
"parents": [{"id": folder.getId()}]
}).alternateLink;
}
function doGet() {
var today = new Date();
var fileName = Utilities.formatDate(today, TIMEZONE, FILE_NAME_FORMAT);
var fileURL;
var folder = DriveApp.getFolderById(FOLDER_ID);
var fileIterator = folder.getFilesByName(fileName);
if (fileIterator.hasNext()) {
fileURL = fileIterator.next().getUrl();
} else {
fileURL = createDocFile(fileName, folder);
}
return HtmlService.createHtmlOutput('<script>window.location.href = "' + fileURL + '";</script>');
}
为了使其适合您,您必须根据需要调整顶部声明的变量。
除此之外,您还需要启用 Drive API Advanced Google 服务。为此,您可以按照以下步骤操作:
- 从脚本编辑器,转到资源 > 高级 Google 服务。
- 在将打开的 window 中,搜索“Drive API”并启用它。单击“确定”。
最后,您可以将其部署到“发布”>“部署为 Web 应用程序”。确保复制将显示在那里的 URL 并在书签栏中使用 URL.
创建一个书签
备选
如果您真的想让打开的文档在您的浏览器上已经存在时获得焦点,您肯定需要研究 creating Google Chrome extensions. In order to make this check work, you may be interested in using the Google Chrome extension's windows api。
正如标题所说,我想构建一个具有以下功能的简单应用程序:
- 它由 Chrome 浏览器上的菜单项激活。
点击后会在我的 [=57] 的 特定文件夹 中打开一个 当前日期 的文件=] 文档。
a) 如果文件存在,则:
- 如果已经打开,请将其置于焦点
- 否则,打开它
b) 否则,在指定目录中创建具有当前日期的文件。
在期刊中添加搜索工具
我知道如何实现大部分功能,但以下功能除外:
如何将脚本 link 转换为 menu-item(可能使用仅包含脚本的空白文档)
如何使打开的文档成为焦点。
我尝试在工具中使用带有日期插入的单个文件,但在大小增加后,它变得无法使用。 我找到的所有日记系统都没有提供我要找的东西。
一个简单的解决方案可以满足您的所有需求,但在文件已经打开时将其置于焦点,如下所示:
正在创建 Google Apps 脚本 WebApp。
这里的想法是您可以轻松地创建一个 GAS WebApp,您可以将其添加到浏览器的 Bookmars 栏中。单击它后,它将根据需要创建每日日志文件,然后将您重定向到该文件。您可以看到下面的代码:
var TIMEZONE = 'GMT';
var FOLDER_ID = 'YOUR_FOLDER_ID';
var FILE_NAME_FORMAT = 'yyyy-MM-dd';
function createDocFile(fileName, folder) {
return Drive.Files.insert({
"title": fileName,
"mimeType": "application/vnd.google-apps.document",
"parents": [{"id": folder.getId()}]
}).alternateLink;
}
function doGet() {
var today = new Date();
var fileName = Utilities.formatDate(today, TIMEZONE, FILE_NAME_FORMAT);
var fileURL;
var folder = DriveApp.getFolderById(FOLDER_ID);
var fileIterator = folder.getFilesByName(fileName);
if (fileIterator.hasNext()) {
fileURL = fileIterator.next().getUrl();
} else {
fileURL = createDocFile(fileName, folder);
}
return HtmlService.createHtmlOutput('<script>window.location.href = "' + fileURL + '";</script>');
}
为了使其适合您,您必须根据需要调整顶部声明的变量。
除此之外,您还需要启用 Drive API Advanced Google 服务。为此,您可以按照以下步骤操作:
- 从脚本编辑器,转到资源 > 高级 Google 服务。
- 在将打开的 window 中,搜索“Drive API”并启用它。单击“确定”。
最后,您可以将其部署到“发布”>“部署为 Web 应用程序”。确保复制将显示在那里的 URL 并在书签栏中使用 URL.
创建一个书签备选
如果您真的想让打开的文档在您的浏览器上已经存在时获得焦点,您肯定需要研究 creating Google Chrome extensions. In order to make this check work, you may be interested in using the Google Chrome extension's windows api。