Google calendar api 开发人员控制台上的Google日历Api错误请求400事件

Google calendar api 开发人员控制台上的Google日历Api错误请求400事件,google-calendar-api,google-oauth,Google Calendar Api,Google Oauth,我已经创建了这个项目,并使用 (我选择了“其他”应用程序类型)。 然后我得到了已安装应用程序的“客户端ID” 然后我转到控制台创建事件,并使用oauth 2进行授权。 一切都很顺利 POST https://www.googleapis.com/calendar/v3/calendars/primary/events?key={YOUR_API_KEY} Content-Type: application/json Authorization: xxx X-JavaScript-U

我已经创建了这个项目,并使用 (我选择了“其他”应用程序类型)。 然后我得到了已安装应用程序的“客户端ID”

然后我转到控制台创建事件,并使用oauth 2进行授权。 一切都很顺利

    POST https://www.googleapis.com/calendar/v3/calendars/primary/events?key={YOUR_API_KEY}

Content-Type:  application/json
Authorization:  xxx
X-JavaScript-User-Agent:  Google APIs Explorer

{
 "end": {
  "dateTime": "2013-1-16T10:00:00.000-07:00"
 },
 "start": {
  "dateTime": "2013-1-16T10:00:00.000-07:00"
 }
}
回应

200 OK

- Show headers -

{

 "kind": "calendar#event",
 "etag": "\"WANTVF5ixxZ04U_VtQ0AZ3MbAlM/Z2NhbDAwMDAxMzY1NjU0MzAwNTk1MDAw\"",
 "id": "2nsuis19mkp2q0uef54tl5nk68",
 "status": "confirmed",
 "htmlLink": "https://www.google.com/calendar/event?eid=Mm5zdWlzMTlta3AycTB1ZWY1NHRsNW5rNjggaXZhbjEzMzEzM0Bt",
 "created": "2013-04-11T04:25:00.000Z",
 "updated": "2013-04-11T04:25:00.595Z",
 "creator": {
  "email": "ivan133133@gmail.com",
  "displayName": "ivan rozhcov",
  "self": true
 },
 "organizer": {
  "email": "ivan133133@gmail.com",
  "self": true
 },
 "start": {
  "dateTime": "2013-01-16T21:00:00+04:00"
 },
 "end": {
  "dateTime": "2013-01-16T21:00:00+04:00"
 },
 "iCalUID": "2nsuis19mkp2q0uef54tl5nk68@google.com",
 "sequence": 0,
 "reminders": {
  "useDefault": true
 }
}
然后我复制了id并更新了此事件。 更新 我第一次收到200条回复

PUT https://www.googleapis.com/calendar/v3/calendars/primary/events/2nsuis19mkp2q0uef54tl5nk68?key={YOUR_API_KEY}

Content-Type:  application/json
Authorization:  Bearer ya29.AHES6ZRmo6pdxj8pY4NmzdI1estRNB-v87XV7xQHgyhrWHk2rzs3Ke8
X-JavaScript-User-Agent:  Google APIs Explorer

{
 "end": {
  "dateTime": "2013-1-16T10:00:00.000-07:00"
 },
 "start": {
  "dateTime": "2013-1-16T10:00:00.000-07:00"
 }
}
但当我再次尝试时,我总是得到400个错误,错误文本写在下面

更新

谁能解释一下,如果这是google.api错误,或者我错在哪里了

我在不同的帐户和PC上试用过(通过谷歌API浏览器和python库,结果相同)

今天我试着复制这个bug。但是everring现在可以正常工作了。 我在谷歌代码中创建了一个问题 仍然没有回答


我想是暂时性的

我使用了补丁而不是更新,现在它可以正常工作了。但我真的不明白为什么第一次更新成功,第二次和其他时间都失败了。完全神秘。

400几乎总是意味着您的认证URL中存在一个简单的语法错误。最常见的原因是,您未能通过URL转义您的作用域或重定向,或者URL多次转义。

在使用Google API Client Library for Javascript访问Google Calendar API时发现了完全相同的问题。如果我尝试更新日历事件的开始日期,就会发生这种情况。更新结束数据没有问题。真奇怪

幸运的是,我也用补丁替换了更新,从而解决了这个问题。

检查以下内容: 这是:

当您更改事件的日期/时间时,序列号需要增加,这就是您收到400错误请求的原因

这就是我如何使用java客户端库解决它的

mGoogleCalendarEvent包含有关事件的更新信息。首先,从GoogleCalendar获取此事件的序列号:

mGoogleCalendarEvent.setSequence(mService.events().get(mCalendarId,mGoogleCalendarEvent.getId()).execute().getSequence());
然后执行更新:

mService.events().update(mCalendarId, mGoogleCalendarEvent.getId(),mGoogleCalendarEvent).execute();

我使用Google API浏览器,因此无法控制URL转义。嗨,David,node JS的Google API客户端库处理速度太慢,有时我会在2分钟后收到响应,有时会在2毫秒内收到响应。我正在使用日历API获取和创建事件。你面临什么问题吗?或者为什么要猜测?
mService.events().update(mCalendarId, mGoogleCalendarEvent.getId(),mGoogleCalendarEvent).execute();