2014-05-05 20 views
5

Próbuję dodać kalendarz Google za pomocą metody dodawania adresu URL. Pojawia się ogólny błąd "Nie mogę dodać zaimportowanego kalendarza pod" mój URL "dla" mojej nazwy użytkownika "z kalendarza Google. Adres URL dodawany do Google wywołuje usługę Restful, która odsyła plik .ics. Jestem w stanie potwierdzić mój adres URL tutaj: http://severinghaus.org/projects/icv/ i tutaj: http://icalvalid.cloudapp.net/ Czego oczekuje ode mnie kalendarz Google?Dodawanie kalendarza Google przez wymagania adresu URL

Są zawartość .ics Wracam:

BEGIN:VCALENDAR 
VERSION:2.0 
PRODID:-//Bryan G LLC//Bryan G Calendar 2014.4.30//EN 
X-WR-CALNAME:Bryang Calendar 
X-WR-TIMEZONE:America/New_York 
BEGIN:VTIMEZONE 
TZID:America/New_York 
X-LIC-LOCATION:America/New_York 
BEGIN:DAYLIGHT 
TZOFFSETFROM:-0500 
TZOFFSETTO:-0400 
TZNAME:EDT 
DTSTART:19700308T020000 
RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU 
END:DAYLIGHT 
BEGIN:STANDARD 
TZOFFSETFROM:-0400 
TZOFFSETTO:-0500 
TZNAME:EST 
DTSTART:19701101T020000 
RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU 
END:STANDARD 
END:VTIMEZONE 
BEGIN:VEVENT 
DTSTAMP:20140505T131700Z 
DTSTART;TZID=America/New_York:20140725T084500 
DURATION:PT2H 
UID:[email protected] 
SUMMARY:Burns JRSR High School FH C V Home Rocky Mountain High School 
LOCATION:Home 
DESCRIPTION: 
END:VEVENT 
END:VCALENDAR 
+0

Myślałem, że możesz po prostu uwzględnić te pola jako parametry adresu URL. Tak naprawdę nie musisz używać ics. – Henry

+0

Nie byłabym w stanie wygenerować pól jako parametrów URL, ponieważ w niektórych przypadkach wysyłałbym do 50 pozycji kalendarza. Próbowałem jednak przekazać informacje bez pliku z tym samym wynikiem. – user3338432

Odpowiedz

1

Ok, więc to jest najdziwniejsze. Wpadłem na mniej więcej ten sam problem: mam plik danych, próbowałem dodać go do Kalendarza Google za pomocą opcji "Dodaj przez adres URL", ale wystąpił ogólny błąd "Nie udało się dodać zaimportowanego kalendarza".

Przeszukałem strony internetowe, od pewnego czasu znajdowałem kilka powiązanych z nimi nierozwiązanych pytań. Wiele osób narzeka na nieprzewidywalność tej funkcjonalności.

Spośród sugerowanych rzeczy próbowałem mieszać do nagłówków, w tym do pliku jako załącznika do pliku, faktycznie zapisując plik na dysk i nadając mu link statyczny. Nic nie działało. W pewnym momencie w końcu zauważyłem, że Kalendarz Google nawet nie próbował pobrać kanału, ponieważ żadne działanie nie dotarło do adresu URL, a na serwerze nie pojawi się żaden dziennik.

Więc zacząłem testować z pojemnikiem na żądanie i lokalnym tunelem. Wciąż nic nie ma. Ostatecznie otworzyłem konsolę przeglądarki, aby spróbować i zobaczyć prośby ze strony internetowej Kalendarza Google po naciśnięciu "dodaj przez adres URL" ... i mój plik został zaimportowany!

Nie mam żadnego logicznego wytłumaczenia tego. Żałuję, że nie mam idealnej odpowiedzi na wszystkie problemy z Kalendarzem Google "Dodaj według adresu URL", ale w tym momencie mogę tylko dodać własne doświadczenia w nadziei, że okaże się to przydatne dla kogoś z tą samą walką.

Teraz mój kanał jest zbudowany z doskonałą biblioteką Sabre/vObject. Ale nie jest nawet zatwierdzany przez żadne walidatory online. Mam tendencję do myślenia, że ​​są one nieaktualne, a mój kanał jest naprawdę całkiem dobry. Co więcej, nie miałem problemu z importowaniem tego samego kanału w programie iCal systemu Mac i importowania jego wydarzeń do Kalendarza Google za pomocą opcji "Importuj plik".

Podejrzewam, że Kalendarz Google bardzo często korzysta z "buforowania", a najtrudniejszą częścią jest dostarczenie pliku do systemu. Kiedy już tam będzie, powinno być dobrze. Fakt, że kanały informacyjne są aktualizowane tylko co około 8 godzin, jest dobrze znany i documented. Może otwarcie inspektora chrome rzeczywiście pomogło. Działy się dziwniejsze rzeczy.

Mogę jednak potwierdzić, że większość innych rzeczy nie ma znaczenia: nie używam załącznika do plików, a nagłówek brzmi "Content-Type: text/calendar; charset = UTF-8". Mój kanał nie jest doskonały, ma na przykład kilka pustych identyfikatorów UID. Również serwer trafił, że faktycznie zadziałał, został wydany w momencie, gdy udało mi się zaimportować plik danych, więc nie ma tu żadnego czynnika czasu, a adres IP pochodzi od Google, więc na przykład żadna strona po stronie klienta nie pobiera.

+1

Dzięki za opisanie twoich kroków, nawet jeśli nie dajesz definitywnego wniosku! – Luc

1

Ten sam numer tutaj. Miałem bardzo długi adres URL z dużą ilością zakodowanych danych, ale jestem pewien, że URL był w 100% zgodny ze specyfikacją. W dziennikach serwera mogłem zauważyć, że Google nawet nie próbował załadować kanału, po prostu odrzucił go z ogólnym błędem. Niestety, tak jak MSIE6 było jakiś czas temu, Google jest zbyt duży, aby go zignorować, i może uciec z niczym, więc teraz jest to mój problem do rozwiązania.

Próbowałem następujące:

  • dodawania.na adres URL;
  • kodowanie danych zakodowanych jako adresy URL w postaci heksadecymali;
  • dodanie losowego parametru w celu uniknięcia buforowania;
  • używanie nowo utworzonej poddomeny zamiast podfolderu;

i może więcej, że nie pamiętam. Wszystko bezużyteczne.

W końcu użyłem nowej subdomeny i zapisałem wszystkie zakodowane dane w pliku. Teraz adres URL wygląda następująco: http://ical.example.net/?id=7. To działa. Bez wyraźnego powodu działa bardzo krótki adres URL.

Nie ma nic wspólnego z zawartością zawartości. Dane nigdy się nie zmieniły, nie może to wynikać z tego, że Google ma zły bufor (zobaczyłbym, że zażądałby buforowania, nigdy takiego nie było).

Powiązane problemy