通过HTTP Post>创建/插入事件(Google Calendar API v3) " 400:错过结束时间"

时间:2017-08-20 22:36:14

标签: api url post google-calendar-api filemaker

我正在使用FileMaker与Google Calendar API进行互动。我已设法授权我的应用,获取用户日历列表以及这些日历中的事件列表以及这些事件的详细信息。但是,我在创建事件时遇到了麻烦。

我发出以下HTTP POST请求。标题:内容类型:application / json,授权:Bearer access_token

https://www.googleapis.com/calendar/v3/calendars/ ********** @ gmail.com/events?{"attachments":[{"fileUrl":" "}],"与会者":[{"电子邮件":" *********** @ gmail.com"} ]"端" {"日期时间":" 2017-08-20T13:00:00-05:00"}"提醒&#34 ;:{" useDefault":真}"开始" {"日期时间":" 2017-08-20T12:00:00-05: 00"},"摘要":"测试事件"}

我收到以下JSON错误响应:

{
    "error": 
    {
        "errors": 
            [
                {
                    "domain": "global",
                    "reason": "required",
                    "message": "Missing end time."
                }
            ],
        "code": 400,
        "message": "Missing end time."
    }
}

这似乎是人们遇到的一个非常常见的错误。但是,看起来大多数有这个问题的人都使用了Google Calendar API支持的库。我试图从stackoverflow和其他关于这些其他框架的一些帖子中找出修复程序,并将它们应用到我的FileMaker / HTTP GET / POST设置中无济于事。

任何帮助都非常感谢!

2 个答案:

答案 0 :(得分:0)

请尝试使用this

POST https://www.googleapis.com/calendar/v3/calendars/calendarId/events

根据参数需要提供calendarId

  

日历标识符。要检索日历ID,请拨打   calendarList.list方法。如果要访问主日历   对于当前登录的用户,请使用“primary”关键字。

答案 1 :(得分:0)

使用此

curl --location --request POST 'https://www.googleapis.com/calendar/v3/calendars/{email}/events' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {access_token}' \
--header 'Content-Type: text/plain' \
--data-raw '{`enter code here`
  "summary": "Google I/O 2015",
  "location": "800 Howard St., San Francisco, CA 94103",
  "description": "A chance to hear more about Google'\''s developer products.",
  "start": {
    "dateTime": "2015-05-28T09:00:00-07:00",
    "timeZone": "America/Los_Angeles"},
  "end": {
    "dateTime": "2015-05-28T17:00:00-07:00",
    "timeZone": "America/Los_Angeles"
  },
  "recurrence": [
    "RRULE:FREQ=DAILY;COUNT=2"
  ],
  "attendees": [
    {"email": "lpage@example.com"},
    {"email": "sbrin@example.com"}
  ],
  "reminders": {
    "useDefault": false,
    "overrides": [
      {"method": "email", "minutes": 24},
      {"method": "popup", "minutes": 10}
    ]
  }
}'