如何通过Google Script获取Google Apps用户账号的SUSPEND DATE?
获取Google账号的暂停日期(Suspend Date)方法
嘿,我刚好对这个问题很熟悉!你现在用的Google Script应该是调用了Admin SDK的Directory API,对吧?其实这个API里确实有专门的字段可以获取账号的暂停日期,只是可能你之前没留意到。
下面是具体的实现思路和代码示例:
首先确保你已经启用了Admin SDK API:在Google Apps Script编辑器中,点击「资源」→「高级Google服务」,找到「Admin Directory API」并开启。另外,你的账号必须拥有Google Workspace管理员权限,否则没法调用用户管理相关的接口。
对应的字段是
suspendedTimestamp,它会返回账号被暂停时的ISO格式时间戳。你可以通过AdminDirectory.Users.get()方法获取用户详细信息时拿到这个值。
举个实际的代码例子:
function getUserSuspendDetails(userEmail) { try { // 获取目标用户的完整信息 const userInfo = AdminDirectory.Users.get(userEmail); // 提取你需要的字段,包括暂停日期 const userDetails = { fullName: userInfo.name.fullName, email: userInfo.primaryEmail, firstName: userInfo.name.givenName, lastName: userInfo.name.familyName, lastLogin: userInfo.lastLoginTime ? new Date(userInfo.lastLoginTime) : "从未登录", suspendStatus: userInfo.suspended, suspendReason: userInfo.suspensionReason, createDate: new Date(userInfo.creationTime), // 关键:获取暂停日期 suspendDate: userInfo.suspended ? new Date(userInfo.suspendedTimestamp) : "未暂停" }; Logger.log(JSON.stringify(userDetails, null, 2)); return userDetails; } catch (error) { Logger.log(`获取用户信息失败:${error.message}`); return null; } }
额外说明:
suspendedTimestamp字段仅在账号处于暂停状态(userInfo.suspended为true)时存在,所以一定要先做判断,避免出现undefined的错误。- 如果是批量获取用户列表,可以在
AdminDirectory.Users.list()的参数里设置projection: 'full',这样返回的每个用户对象都会包含所有详细字段,自然也包括suspendedTimestamp。
内容的提问来源于stack exchange,提问作者user11264278
相关产品推荐
相关产品推荐

