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