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

Google Apps Script稳定获取activities.list指定查询参数方法

解决方案

Google Admin SDK的activities.list接口返回的parameters数组不保证元素顺序固定,使用固定数组索引(比如parameters[2])取值的写法本身就不可靠,会因为响应结构的顺序波动拿到错误结果。
要稳定获取organizer_email参数,核心逻辑是放弃索引定位,遍历数组匹配每个元素的name属性,找到name为目标值的元素后再读取对应的值。

可直接复用的实现代码(适配Apps Script环境)

首先新增一个通用的参数提取工具方法,自动适配接口不同类型参数的存储字段(字符串值存在value字段、整数值存在intValue字段、布尔值存在boolValue字段),同时做了空值兜底避免异常报错:

/**
 * 从事件参数数组中提取指定名称的参数值
 * @param {Array} parameters - 对应activity.events[n].parameters数组
 * @param {string} targetParamName - 要提取的参数名称
 * @returns 匹配到的参数值,无匹配返回null
 */
function getParameterValue(parameters, targetParamName) {
  if (!Array.isArray(parameters)) return null;
  for (const param of parameters) {
    if (param.name === targetParamName) {
      return param.value ?? param.intValue ?? param.boolValue ?? null;
    }
  }
  return null;
}

修改原有代码中遍历活动记录的逻辑,替换固定索引取值的部分:

Logger.log('MEET LOGS:');
for (const activity of activities) {
  // 跳过无事件数据的异常条目
  if (!activity.events || activity.events.length === 0) continue;
  const eventParams = activity.events[0].parameters;
  // 按名称提取organizer_email,不受数组顺序影响
  const organizerEmail = getParameterValue(eventParams, 'organizer_email');
  Logger.log('组织者邮箱:%s,事件发生时间:%s', organizerEmail, activity.id.time);
}

补充说明

  • 该写法完全不受parameters数组内元素的排列顺序影响,只要响应中携带organizer_email字段就能精准匹配
  • 工具方法可通用,后续需要提取meeting_code、conference_id、is_external等其他任意事件参数时,直接传入对应参数名即可
  • 内置的空值校验逻辑可以兼容个别异常响应(比如事件无参数、目标字段缺失),不会导致脚本运行中断

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 08:09:27