【问题标题】:This app is blocked error on unbound script in personal account此应用程序在个人帐户中的未绑定脚本上被阻止错误
【发布时间】:2021-10-27 05:37:14
【问题描述】:

专家,我需要您的帮助。感谢所有这些。

我遇到了一个奇怪的情况。当我尝试在我的个人 Google 帐户中运行unbound 脚本时,我收到“此应用被阻止”错误。

我的个人 gmail 帐户中有 39 个文件夹,每个文件夹都包含来自不同发件人的重要电子邮件。这些文件夹包含过时的电子邮件,所以我使用下面的脚本来删除旧的电子邮件:

/*
    This script, when used with Google Apps Scripts will delete 500 emails and
    can be triggered to run every minute without user interaction enabling you
    to bulk delete email in Gmail without getting the #793 error from Gmail.
    Configure the search query in the code below to match the type of emails
    you want to delete
    Browser to https://script.google.com/.
    Start a script and paste in the code below. 
    After you paste it in, save it and click the little clock looking button.
    This is for your triggers. You can set up how frequently you want the script
    to run (I did mine for every minute).
    Source : # https://productforums.google.com/d/msg/gmail/YeQVDuPIQzA/kpZPDDj8TXkJ
    */
    
    function batchDeleteEmail() {
      var batchSize = 100 // Process up to 100 threads at once
      var threads = GmailApp.search('label:************ AND older_than:6m AND is:read');
      for (j = 0; j < threads.length; j+=batchSize) {
        GmailApp.moveThreadsToTrash(threads.slice(j, j+batchSize));
        }
    }

我需要此脚本的副本来处理 39 个文件夹中的每一个,因此我安装了脚本,将脚本指向文件夹 #1,运行脚本以对其进行授权,并设置我的触发器(每月 1 日)。

然后我复制了脚本并重复了文件夹 #2 的设置过程,然后是文件夹 #3,依此类推...请记住,这些都是我个人帐户中的 UNBOUND 脚本。 p>

专家,为什么会这样?更好的是,我该如何解决? (是否可以依次“循环”浏览 39 个文件夹中的每一个?搜索词永远不会改变,只会改变文件夹名称。)

我迷路了。有人有什么见解吗?

【问题讨论】:

  • 我不明白您所说的 文件夹 是什么意思。您是指 Gmail 标签吗?
  • 我最谦虚的道歉,好心的先生。谢谢你叫我出来。我用错了词。是的,我的意思是说“我的 Gmail 帐户中有 39 个标签,每个标签都包含……”我应该说不同的地方......
  • 应该可以循环遍历。但是,需要将此错误报告给 Google。见stackoverflow.com/questions/66633659/…
  • @user3279926 TheMaster 分享的答案对您有帮助吗?请对其进行测试并在此处分享您的发现。

标签: google-apps-script


【解决方案1】:

您可以轻松地修改您的函数以循环每个标签,只需将它们硬编码到一个数组中即可。您可以按原样使用以下示例,您只需要修改标签。

function batchDeleteEmail() {
  var batchSize = 100 // Process up to 100 threads at once
  var labels = ["MyLabel1", "MyLabel2", "MyLabel3", "MyLabel4", "MyLabel5",
    "MyLabel6", "MyLabel7", "MyLabel8", "MyLabel9", "MyLabel10", "MyLabel11",
    "MyLabel12", "MyLabel13", "MyLabel14", "MyLabel15", "MyLabel16",
    "MyLabel17", "MyLabel18", "MyLabel19", "MyLabel20", "MyLabel21",
    "MyLabel22", "MyLabel23", "MyLabel24", "MyLabel25", "MyLabel26",
    "MyLabel27", "MyLabel28", "MyLabel29", "MyLabel30", "MyLabel31",
    "MyLabel32", "MyLabel33", "MyLabel34", "MyLabel35", "MyLabel36",
    "MyLabel37", "MyLabel38", "MyLabel39"
  ];
  
  for (var i = 0; i < labels.length; i++) {
    var query = "label:".concat(labels[i].concat(
      " AND older_than:6m AND is:read"));
    var threads = GmailApp.search(query);

    for (j = 0; j < threads.length; j += batchSize) {
      GmailApp.moveThreadsToTrash(threads.slice(j, j + batchSize));
    }
  }
}

【讨论】:

  • Jacques-Guzel Heron,您的代码可以毫无问题地保存,但是当我运行项目时(当然是使用实际的标签名称),我收到以下错误:这个应用程序已被阻止此应用试图访问您 Google 帐户中的敏感信息。为确保您的帐户安全,Google 阻止了此访问。我该如何解决?
  • 我感觉授权问题(及其导致的错误)可能是由复制和粘贴引起的。 (这就是我将您的脚本“放置”到 GAS 编辑器中的方式。)我删除了您的脚本的复制粘贴版本,并再次重新安装了您的脚本,这次手动输入每一行。没有变化。我得到了同样的错误,它告诉我我的“感觉”是错误的。所以,现在我回到了第一方。我该如何克服这个问题?
猜你喜欢
  • 1970-01-01
  • 2022-06-30
  • 2019-07-10
  • 1970-01-01
  • 2022-01-03
  • 1970-01-01
  • 2020-01-23
  • 2017-06-06
  • 1970-01-01
相关资源
最近更新 更多