You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何关联自动处理Google Drive访问请求的脚本至Gmail与Google Drive?

自动处理Google Drive访问请求的脚本配置问题

我在Google Drive上发布了一款可下载产品,目前每个用户访问都需要提交权限申请,Google Drive会给我发送访问请求,我必须手动处理。我希望实现该流程的自动化,找到了以下可实现该功能的脚本:

/*
Purpose of the Script:
Add Shared Drive Access Requestor to Google Group used for ACL
Shared Drive Link: https://drive.google.com/drive/u/2/folders/1EycKD-KKbdjRihYR1zKWpmzI62saAM1Z
*/

function addtoGroup() {
  var interval = 5;    //  if the script runs every 5 minutes; change otherwise
  var emails = [];
  var timeFrom = Math.floor(Date.now()/1000) - 60 * interval;
  var group = GroupsApp.getGroupByEmail("MYEMAIL");
  var threads = GmailApp.search('label: "Access Request" after:' + timeFrom);
  for (var i = 0; i < threads.length; i++) {
    var messages = threads[i].getMessages();
    if (messages.length == 1) {      // only deal with threads with one message
      var ReplyToEmail = messages[0].getReplyTo().match(/([^<]+@[^>]+)/)[1];
      emails.push(ReplyToEmail);
      messages[0].reply("Je hebt nu toegang om het luisterboek te downloaden.",{
        cc:"MYEMAIL"
      })
    }
  }
  for (i=0; i < emails.length; i++) {
    try {
      addMember (emails[i], group);
    }
    catch(e) {
      console.error(e);
      continue;
    }
  }
}

function addMember (email, group) {
  var hasMember = group.hasUser(email);
  Utilities.sleep(1000);

  if(!hasMember) {
    var newMember = {email: email,
    role: "MEMBER",
    delivery_settings: "NONE"};
    }
  
}

但我不知道如何将此脚本关联到我的Gmail和Google Drive。我可以创建该脚本,但脚本如何知晓要使用我的Gmail和Google Drive账号?或者,若所有服务都在同一Google Workspace账号下,是否会自动完成关联?


脚本关联与配置步骤

  • 使用同一账号创建脚本
    所有Google服务(Gmail、Drive、群组、Apps Script)绑定在同一Google账号(含Workspace账号)时,脚本会自动使用当前登录账号的权限。直接用该账号打开Google Apps Script平台,新建脚本粘贴代码即可。

  • 替换脚本变量
    代码中有三处需替换为你的信息:

    • GroupsApp.getGroupByEmail("MYEMAIL"):将MYEMAIL替换为管理Drive权限的Google群组邮箱(如drive-access@yourdomain.com)
    • 回复邮件内容"Je hebt nu toegang om het luisterboek te downloaden.":改为中文提示,例如"你现在可以下载该产品了。"
    • 回复参数cc:"MYEMAIL":替换为你的个人邮箱或群组邮箱
  • 修复脚本缺失功能
    原addMember函数仅定义了成员对象,未执行添加操作,需补充代码:

    function addMember (email, group) {
      var hasMember = group.hasUser(email);
      Utilities.sleep(1000);
    
      if(!hasMember) {
        var newMember = {
          email: email,
          role: "MEMBER",
          delivery_settings: "NONE"
        };
        // 执行添加成员操作
        group.addUser(email);
      }
    }
    
  • 配置Gmail标签与过滤器
    脚本依赖label: "Access Request"筛选邮件,需在Gmail中创建名为Access Request的标签,并设置过滤器:将Google Drive发送的访问请求邮件自动打上该标签。过滤器可匹配发件人drive-shares-noreply@google.com、主题含“请求访问”的邮件。

  • 授权与设置触发
    首次运行addtoGroup函数时,会弹出权限申请窗口,需授权脚本访问Gmail、Google群组等服务;之后在Apps Script的“触发器”页面设置定时触发(如每5分钟运行一次addtoGroup),与脚本中interval = 5参数对应。

账号关联说明

若你的Gmail、Google Drive、Google群组均属于同一Google Workspace账号,用该账号创建并运行脚本时,会自动关联所有服务——脚本权限基于当前登录账号,只要账号拥有对应服务的操作权限(如管理群组、读取Gmail、管理Drive权限),即可正常工作。

内容的提问来源于stack exchange,提问作者biggydeen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 13:43:22