【问题标题】:How do you leave a googlegroup via the Googlescript API您如何通过 Google Script API 离开 google 群组
【发布时间】:2021-09-21 01:12:17
【问题描述】:

我想要做的是通过使用 API 离开一个 googlegroup,而不必单击该组本身。这在此处的 API 文档中没有显示:Google Groups API

在尝试通过 API 找到离开群组的方法时,我确实发现我是不同群组的成员,但我没有加入,但似乎没有记录的离开方式。去这里:Enum Role。这让我可以看到我在一个组中的角色以及使用的相应代码如下。

有一个用于删除组成员身份的 Enterprise Admin API,但这不是 Enterprise 设置,因此 AdminGroupSettings 不能在此范围内使用。

function getGroupNames() {

  try {
      var groups = GroupsApp.getGroups();
  }
  catch(err) {
      console.log("Permission error [getGroup]: Cannot access group members list!");
  }
  
  for (var i = 0; i < groups.length; i++) {
    var group = groups[i];
    var currentUser = Session.getActiveUser();
    // https://stackoverflow.com/questions/62801809/in-google-app-scripts-how-can-you-get-the-group-name-with-the-group-email
    // Groups Settings API/AdminGroupSettings
    // var groupName = AdminGroupsSettings.Groups.get('unsubscribe-me500@arefilled.site').name;
    // console.log("Attempting to get group name: " + groupName + " from address " + groups[i]);
    if (group.getRole(currentUser.getEmail()) == GroupsApp.Role.MEMBER){
        // How to leave group??
        console.log('You are a member of ' + group.getEmail()); 
        continue;
    }
    if (group.getRole(group.getEmail()) == GroupsApp.Role.INVITED){
        // leave group
        console.log('You are invited to ' + group.getEmail());
        continue;
    }
    if (group.getRole(group.getEmail()) == GroupsApp.Role.MANAGER){
        console.log('You are manager of ' + group.getEmail());
        continue;
    }
    if (group.getRole(group.getEmail()) == GroupsApp.Role.OWNER){
        // leave group
        console.log('You are owner of ' + group.getEmail());
        continue;
    }    
      if (group.getRole(group.getEmail()) == GroupsApp.Role.PENDING){
        // leave group
        console.log('You are pending to ' + group.getEmail());
        continue;
    }
  }

}

是否可以通过 Google Groups API 退出群组?如果有,怎么做?

【问题讨论】:

    标签: javascript google-apps-script google-groups-api


    【解决方案1】:

    答案:

    您需要使用 Admin SDK Directory API 从组中删除成员。

    更多信息:

    Directory API 有一个 members.delete 方法,可让您从 Google 群组中删除成员。

    在 Apps Script 中,您需要将 AdminDirectory 高级服务添加到项目中,并在请求中指定组的 groupKey 和要删除的成员的 membersKey

    const groupKey = "XXXXXXXXX"
    const memberKey = "YYYYYY"
    
    AdminDirectory.Members.remove(groupKey, memberKey)
    

    成功删除将导致HTTP 204 响应。

    注意:您需要以域管理员身份运行此代码。如果不使用 Admin SDK,则无法通过 API 从 Google 群组中删除成员。

    【讨论】:

    • 那么您的意思是不可能离开不在工作区中的组,而 google 故意忽略了此功能?我已经知道 AdminDirectory,但那是针对 Workspaces 帐户而不是域工作连接帐户。目的是将自己从它说您是其中成员的组中删除。我有几个不断出现但不允许我删除。它们是从 API 本身列出的,无法在群组页面上搜索。
    猜你喜欢
    • 1970-01-01
    • 2021-11-25
    • 2020-12-23
    • 1970-01-01
    • 1970-01-01
    • 2019-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多