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

从Google日历Event URL解码原始Event ID失败,求解决方法

解决方案

你解码失败的核心原因是:原编码逻辑是把原始事件ID的前缀部分和日历ID的片段用空格拼接后做Base64编码,你目前只完成了Base64的逆解码,没把拼接的两部分拆分出来,所以得到的是拼接后的完整字符串。

正确的解码步骤需要在逆解码后,将结果按空格分割,取第一部分就是你要的原始事件ID。修改后的完整代码如下:

var eventIdEncoded = eventUrl.split("/").pop(); // 提取URL中的编码部分
try {
  // 还原URL安全的Base64编码格式
  eventIdEncoded = eventIdEncoded.replace(/-/g, '+').replace(/_/g, '/');
  // 补全Base64要求的填充位(按4的倍数计算,而非2的倍数)
  var paddingNeeded = (4 - eventIdEncoded.length % 4) % 4;
  eventIdEncoded += "====".substring(0, paddingNeeded);
  
  var eventIdDecoded = Utilities.base64Decode(eventIdEncoded);
  // 转成字符串后按空格拆分,取第一部分即为原始事件ID
  var decodedString = Utilities.newBlob(eventIdDecoded).getDataAsString();
  var originalEventId = decodedString.split(" ")[0];
  
  Logger.log("原始Event ID: " + originalEventId);
} catch (e) {
  Logger.log("解码失败: " + e.message);
}

关键修正说明:

  • 修正了Base64填充位的计算逻辑:Base64要求长度为4的倍数,原代码按2的倍数补位是错误的,改成按(4 - 编码长度%4) %4计算需要补充的等号数量
  • 新增拆分逻辑:解码后的字符串是[原始事件ID前缀] [日历ID片段]的格式,按空格拆分后取第一个元素就是目标ID

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 02:43:12