谷歌日历.插入API返回400'必需'

Google Calendar.Insert API returning 400 'required'

本文关键字:必需 返回 日历 插入 API 谷歌      更新时间:2023-09-26

我正在尝试通过Google javascript API创建日历。OAuth身份验证工作正常:我可以使用获得日历列表

gapi.client.calendar.calendarList.list();

然而,当我尝试用创建日历时

gapi.client.calendar.calendars.insert(
{
    "summary": "A New Calendar",
    "description": "Generated by Ben",
    "timezone" : "Australia/Sydney"
});

我得到:

{
  "error": {
  "code": 400,
  "message": "Required",
  "data": [
   {
    "domain": "global",
    "reason": "required",
    "message": "Required"
   }
  ]
 },
 "id": "gapiRpc"
}

在其他API的doco中,它显示了此响应,但缺少所需参数的列表。

有什么方法可以确定我缺少什么"必需"参数吗?我已经用API资源管理器对它进行了测试,我的参数看起来工作正常。

终于明白了这一点。属性需要在"资源"对象中:

gapi.client.calendar.calendars.insert(
{
    "resource" :
    {"summary": "A New Calendar",
    "description": "Generated by Ben",
    "timezone" : "Australia/Sydney"}
});

doco没有提到这一点,但如果您查看对gapi.auth.authorize的初始调用的响应,您会发现JSON描述了您指定的范围的整个API。

但我通常可以根据以下文档使用POST https://www.googleapis.com/calendar/v3/calendars API创建新日历:

body = {
    'summary': 'calendarSummary',
    'timeZone': 'America/Los_Angeles'
}