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

如何通过Google Calendar API在Google Apps Script中获取Google Meet链接?

Google日历事件Line每日推送:修复会议数据获取问题

问题根源

  1. 方法名拼写错误:原代码中item.getconferencedata()不符合Google Apps Script的驼峰命名规范,正确方法应为getConferenceData()
  2. 会议数据处理不当:getConferenceData()返回的是对象而非字符串,直接拼接会显示无效内容,需要提取实际会议链接或信息

修正后的完整代码

// 初始化日历(默认日历,如需指定其他日历可改用getCalendarById("日历ID"))
const calendar = CalendarApp.getDefaultCalendar();
const Now = new Date();
const Start = new Date(new Date().setHours(0, 0, 0, 0));
const End = new Date(new Date().setHours(23, 59, 59, 999));
const calendarData = calendar.getEvents(Start, End);
// 替换为你的Line Notify Token数组
const NotifyTokens = ["你的Token1", "你的Token2"];

function Notify() {
  let NotifyContents = '';
  let i = 1;
  
  calendarData.forEach(item => {
    if (Now <= item.getStartTime()) {
      // 标题处理
      NotifyContents += item.getTitle() ? `\n${i}. ${item.getTitle()}\n` : "\n\nNo Title\n";
      // 描述处理
      NotifyContents += item.getDescription() ? `${item.getDescription()}\n` : "";
      // 时间处理
      if (item.getStartTime() && item.getEndTime()) {
        const startTimeStr = item.getStartTime().toLocaleTimeString();
        const endTimeStr = item.getEndTime().toLocaleTimeString();
        NotifyContents += `Time:${startTimeStr}-${endTimeStr}\n`;
      }
      // 会议数据处理
      const conferenceData = item.getConferenceData();
      if (conferenceData) {
        // 提取Google Meet链接(适配常见会议类型)
        const entryPoints = conferenceData.getEntryPoints();
        let meetLink = "";
        if (entryPoints.length > 0) {
          meetLink = entryPoints.find(ep => ep.getEntryPointType() === "VIDEO")?.getUri() || entryPoints[0].getUri();
        }
        NotifyContents += meetLink ? `会议链接:${meetLink}\n` : "已设置会议,但无可用链接\n";
      } else {
        NotifyContents += "No Conference\n";
      }
      i++;
    }
  });

  if (!NotifyContents) return;

  NotifyTokens.forEach(token => {
    UrlFetchApp.fetch("https://notify-api.line.me/api/notify", {
      method: "post",
      payload: { message: NotifyContents },
      headers: { Authorization: `Bearer ${token}` }
    });
  });
}

关键修改说明

  • 补全日历初始化代码,确保calendar变量有效
  • 修正会议数据方法名,改为正确的getConferenceData()
  • 新增会议数据解析逻辑:从ConferenceData对象中提取视频会议链接(优先Google Meet)
  • 优化变量声明,使用let替代var符合现代JS规范
  • 简化条件判断写法,提升代码可读性

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 21:27:28