如何使用Google应用构建简单的日记应用

时间:2019-10-21 09:41:52

标签: google-apps-script google-chrome-extension google-docs-api

正如标题所述,我要构建一个具有以下功能的简单应用程序:

  1. 由Chrome浏览器上的菜单项激活。
  2. 单击它会在我的Google文档的特定文件夹中打开一个具有当前日期的文件。

    a)如果文件存在,则:

    • 如果已经打开,请聚焦
    • 否则,打开它

    b)否则,在指定目录中创建具有当前日期的文件。

  3. 添加设施以在日记中进行搜索

除了以下内容外,我知道如何实现大多数功能:

  • 如何将脚本链接到菜单项(也许带有只包含脚本的空白文档)

  • 如何使开放文档成为重点。

我尝试在工具中使用带有日期插入的单个文件,但是在增大大小之后,它变得无法使用。 我找到的所有日记系统都没有提供我想要的东西。

1 个答案:

答案 0 :(得分:0)

一个简单的解决方案可以满足您的所有需求,但可以在文件打开时使其成为焦点:

创建Google Apps脚本WebApp。

此处的想法是,您可以轻松创建一个GAS WebApp,然后将其添加到浏览器的Bookmars Bar中。单击它后,它将在需要时创建每日日志文件,然后将您重定向到该文件。您可以看到以下代码:

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 Services”。
  • 在打开的窗口中,搜索“ Drive API ”并启用它。单击确定。

最后,您可以将其部署到“发布”>“作为Web应用程序部署”。确保复制将显示在其中的URL,并使用该URL在书签栏中创建一个书签。

替代

如果您真的想使其正常运行,以使打开的文档在浏览器中已经存在时就可以聚焦,那么您肯定需要研究creating Google Chrome extensions。为了使此检查有效,您可能有兴趣使用Google Chrome扩展程序的windows api