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

Node.js调用Google Calendar API报PEM routines:get_name:no start line错误求解

问题排查与修复方案

核心错误原因

你在初始化JWT认证客户端时传参错误:google.auth.JWT的第三个入参要求传入PEM格式的私钥内容(对应服务账号凭证里的private_key字段),你当前传入的是CREDENTIALS.private_key_id(私钥ID,不是私钥本身),导致PEM解析模块无法识别合法的私钥格式,抛出error:0909006C:PEM routines:get_name:no start line错误。

修复步骤

  • 修正JWT实例化代码
    将原有JWT初始化行替换为如下内容:
// 替换第三个入参为private_key,而非private_key_id
const auth = new google.auth.JWT(
  CREDENTIALS.client_email,
  null,
  CREDENTIALS.private_key,
  SCOPES
);
  • 处理.env存储私钥的转义问题
    若修正后仍报相同错误,说明你将整个凭证JSON存入.env文件时,私钥中的换行符\n被转义为了普通字符串\\n,可通过如下代码手动修复换行符:
const fixedPrivateKey = CREDENTIALS.private_key.replace(/\\n/g, '\n');
const auth = new google.auth.JWT(
  CREDENTIALS.client_email,
  null,
  fixedPrivateKey,
  SCOPES
);
  • 可选后续问题规避(非本次报错原因,避免后续调用失败)
    1. 你当前事件的dateTime字段传入的是Date对象,Google Calendar API要求该字段为ISO格式字符串,可在传参时调用.toISOString()方法转换
    2. 时区参数需使用IANA规范格式,将United Kingdom替换为Europe/London

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 17:36:01