Feed ICS autenticati per eventi del calendario privato

L’esportazione pubblica ICS è stata recentemente reintrodotta tramite

GET /discourse-post-event/events.ics, che è un ottimo miglioramento a seguito del lavoro in

Re-Add full ICS export.

Al momento, questo endpoint sembra essere limitato agli eventi visibili agli utenti anonimi. Di conseguenza, gli eventi in categorie private o categorie limitate al gruppo predefinito everyone non possono essere sottoscritti in client di calendario esterni (ad esempio, Google Calendar, Outlook).

Sarebbe fattibile supportare l’accesso autenticato a questo endpoint, in modo simile a come Discourse gestisce i feed RSS/Atom privati (ad esempio, tramite un token per utente o una chiave API di sola lettura)?

Questo non cambierebbe alcuna regola di autorizzazione: consentirebbe semplicemente ai client di calendario di accedere agli eventi che l’utente è già autorizzato a vedere.

Sollevo questa richiesta separata e circoscritta a seguito della reintroduzione del feed ICS pubblico, come suggerito in precedenza.

1 Mi Piace

Nel caso qualcuno si chieda: ho aggiunto ?api_key=... all’URL e ho scoperto che funziona subito: visualizza gli eventi accessibili per l’utente API. Scusate la confusione, non funziona. Stava usando il mio cookie di sessione.

1 Mi Piace

Dopo aver esaminato attentamente il codice, ho finito per scrivere un proxy molto semplice che gestisce vari ostacoli necessari per creare una chiave API utente e passarla all’API; genera anche un link che gli utenti devono incollare nelle loro applicazioni di calendario:

Spero che tutto questo un giorno arrivi al codice di Discourse e non sia più necessario; nel frattempo lo condivido nella speranza di rendere la vita più facile agli altri.