Вставка события API Google Calendar всегда возвращает ошибку 404 "не найден"

Я попробовал пример вставки календаря отсюда: https://developers.google.com/google-apps/calendar/v3/reference/events/insert#examples  Независимо от того, какое свойство я использую, я всегда получаю ошибку 404 "не найден". Кто-нибудь может пролить свет на это? Большое спасибо!!!

POST https://www.googleapis.com/calendar/v3/calendars/test/events?sendNotifications=false&fields=start&key={YOUR_API_KEY}

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

{
 "end": {
  "date": "2012-07-11"
 },
 "start": {
  "date": "2012-07-09"
 }
}

Ответ: 404 Не найдено

{
 "error": {
  "errors": [
   {
    "domain": "global",
    "reason": "notFound",
    "message": "Not Found"
   }
  ],
  "code": 404,
  "message": "Not Found"
 }
}

Ответ 1

Я считаю, что он говорит вам, что ресурс календаря "test" не найден. Вы создали календарь под названием "тест"? Если вы замените "test" на "primary" (ваш основной календарь), то Explorer должен работать.

Ответ 2

Для непрозрачного календаря JuanPablo, Re:

В случае непервичного календаря вам необходимо использовать идентификатор (в виде адреса электронной почты) в качестве calendarId.

Пример: Скажем, у вас есть календарь с названием "тест". Вы получаете свой идентификатор, подобный этому

GET https://www.googleapis.com/calendar/v3/users/me/calendarList?key={YOUR_API_KEY}
->
{
 "kind": "calendar#calendarList",
...
 "items": [
  {

   "kind": "calendar#calendarListEntry",
   "etag": ...,
   "id": "[email protected]",
   "summary": "test",
   "description": "Testing calendar for development of Calendar related applications",
...
   }
  }
 ]
}

Ваш POST будет выглядеть следующим образом

POST https://www.googleapis.com/calendar/v3/calendars/[email protected]/events?sendNotifications=false&fields=start&key={YOUR_API_KEY}

Ответ 3

Я также получаю ту же проблему с s = вставкой события, получая конкретное событие. Но у меня есть альтернатива, просто укажите CalendarList asa = service.CalendarList.List().Execute(); перед выполнением кода, в котором вы получаете. Я не знаю, почему он работает после указания этого кода. Если вы найдете правильный путь, обновите его здесь, так как он будет потреблять больше количества квот.