2013-07-25 16 views
5

Próbuję utworzyć kalendarz przy użyciu interfejsu Google Calendar API v3, jeśli jeszcze nie istnieje. Moja implementacja skutecznie pobiera wszystkie moje kalendarze i zdarzenia i może zmieniać kalendarze, ale mam problem z dodaniem nowego kalendarza. To co mam zrobić, aby spróbować dodać nowy kalendarz dla użytkownika:Błąd 404 podczas tworzenia kalendarza za pomocą Kalendarza Google Api v3 przy użyciu C# .net

... 
var calendarService = new CalendarService(_authenticator); 
var calendarId = "com.somedomain.somename.1234"; // Some random ID 
try { 
    calendarManager.GetCalendar(calendarId); // No calandar found 
} catch(GoogleCalandarServiceProxyException e){ 
    // Ok, so far so good, calendar not found (that is correct) and I am here 
    var someCalendar = new Google.Apis.Calendar.v3.Data.CalendarListEntry { 
     Summary = "Some summary!", 
     Description = "A calendar descr.", 
     AccessRole = "writer", 
     BackgroundColor = "#E7323C", 
     Id = calendarId 
    }; 
    calendarService.CalendarList.Insert(someCalendar).Fetch(); // Fetch to execute 
} 

Zapytanie generowanego:

insert @ https://www.googleapis.com/calendar/v3/users/me/calendarList?alt=json&prettyPrint=true 

RequestError:

Google.Apis.Request.RequestErrorNotFound[404]Errors [Message[Not Found]Location[-] Reason[notFound] Domain[global]]] 

dziwne jest to, że robienie GET na https://www.googleapis.com/calendar/v3/users/me/calendarList?alt=json&prettyPrint=true nie zwraca coś, więc powinno tam być.

Mam nadzieję, że jest tam jakiś wspaniały facet/dziewczyna, który wie, co robić! Całkowicie utknąłem.

Aktualizacja Wydaje się, że otrzymuję ten sam błąd 404 na CalendarList Google Api Explorer także:

Url: https://developers.google.com/google-apps/calendar/v3/reference/calendarList/insert

Zapytanie:

POST https://www.googleapis.com/calendar/v3/users/me/calendarList?key={YOUR_API_KEY} 

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

{ 
"id": "hastalavista" 
} 

Odpowiedź:

404 Not Found 

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

Czy ktoś wie, czy Google zmienił adres URL tego zasobu? A jeśli tak, w jaki sposób zmieniam kalendarz Google Api w wersji 3, aby korzystać ze zaktualizowanego adresu URL ...?

Odpowiedz

10

Okey, mój zły:

Nie można utworzyć kalendarz z własnym identyfikatorem, celem CalendarListEntry.Insert() jest wstawić utworzony kalendarz na liście kalendarzy

Tak aby utworzyć nowy kalendarz trzeba:

  1. Włóż nową kalendarz: https://developers.google.com/google-apps/calendar/v3/reference/calendars/insert

    (NIE dodać id jako paramater, to zostanie utworzony automatycznie)

  2. Włóż ID kalendarza utworzonego w kroku 1 i włóż ją do calendarList: https://developers.google.com/google-apps/calendar/v3/reference/calendarList/insert

1

nadal jestem całkowicie mylić co do rozróżnienia Google między kalendarzem a kalendarzem, ponieważ dane wydają się nakładać. Dlaczego kalendarz jest uważany za kalendarz "drugorzędny"?

0

Kolejny kod dla mnie podstęp, wspomniany odnośnik to Java.Netto, a jak zwykłe e nne są pewne różnice denerwujące ...

private bool createCalendar() {

 // use Google.Apis.Calendar 
     Calendar calendar = new Calendar(); 
     calendar.Summary = "MyNewCalendar"; 
     calendar.Description = "Your new Calendar"; 
     calendar.Location = "Aadorp"; 
     calendar.TimeZone = "Europe/Amsterdam"; 

     try 
     { 
      // Not inserting in CalendarList but in Calendar! 
      calendarService.Calendars.Insert(calendar).Execute(); 
     } 
     catch (Exception exception) 
     { 

      MessageBox.Show(exception.Message); 
      return false; 
     } 
     return true; 
    } 
Powiązane problemy