URLs de assinatura de calendário para aplicativos de calendário externos

Adicionamos uma nova aba Calendário às preferências do usuário que permite assinar feeds do Discourse em aplicativos de calendário externos como Google Agenda, Apple Calendar e Microsoft Outlook.

:down_arrow:

Como funciona

Navegue até sua aba Preferências → Calendário e clique em Gerar URLs de Assinatura. Você receberá botões de assinatura com um clique para:

  • Google Agenda — abre o Google Agenda com o feed pré-preenchido
  • Microsoft Outlook — abre o diálogo de assinatura da web do Outlook
  • Apple Calendar — aciona o aplicativo Calendário nativo via webcal://
  • Copiar URL — para qualquer outro aplicativo de calendário que suporte feeds ICS

Feeds disponíveis

Sempre disponíveis:

  • Lembretes Marcados — seus favoritos que possuem datas de lembrete

Com o plugin discourse-calendar ativado:

  • Todos os Eventos — todos os eventos do fórum
  • Meus Eventos — eventos que você vai participar ou tem interesse

Para desenvolvedores de plugins

Plugins podem registrar feeds ICS adicionais usando a nova API register_calendar_subscription_feed. Feeds registrados dessa forma aparecem automaticamente na aba de preferências do Calendário quando o plugin está ativado.

Segurança

Os URLs de assinatura usam chaves de API de usuário com escopo restritas ao acesso somente leitura no formato ICS. As chaves são limitadas por taxa, e os URLs são exibidos apenas uma vez no momento da geração — os usuários podem regenerar a qualquer momento, o que revoga os URLs antigos.

14 curtidas

Obrigado @Falco, mas como remover as opções corporativas? Acho ofensivo para minha comunidade ter que ver publicidade de serviços proprietários.

Você pode ocultá-lo com CSS.

2 curtidas

Muito obrigado por esta implementação - isso aumentará a usabilidade do plugin de calendário/eventos para muitas comunidades!

Tenho a mesma objeção que @hellekin: dentro do Discourse, estamos em um ambiente de Código Aberto. Em nossa comunidade, ninguém usa o Google Calendar ou o Microsoft. Se os usuários precisarem de um link para esses serviços proprietários, eles devem decidir por si mesmos, não o aplicativo. Portanto, eu preferiria selecionar o tipo de serviço de calendário externo na etapa de criação dos URLs de assinatura (por exemplo, com algumas caixas de seleção), e não mais tarde.

Aprimoramento de “filtro”

Temos várias comunidades em nossa instância do Discourse. Elas são separadas por permissões de grupo e alguns usuários são membros de mais de uma comunidade. Seria conveniente filtrar a URL “Discourse Calendar - All Events” para que ela exiba apenas as entradas do calendário de uma comunidade específica. URL de exemplo

https://discourse.example.com/discourse-post-event/events.ics?user_api_key=c2aa22d800dd473b62d199d796742382&group=[groupname]

Com este aprimoramento, seria possível compartilhar os eventos do Discourse de uma comunidade específica (!) em seu próprio site, por exemplo, com o plugin do WordPress “ICS calendar”.

2 curtidas

Outro pequeno aprimoramento proposto: se você quiser assinar os eventos do Discourse em dois clientes diferentes (por exemplo, Thunderbird em dois dispositivos), você precisa copiar o URL duas vezes. Mas atualmente o URL é exibido apenas uma vez. Se você adicionar um segundo cliente, terá que regenerar os URLs e, assim, perderá os primeiros.

Um feed gerado por um usuário em um desses grupos não funciona dessa maneira? Você testou?

Você precisa copiar apenas uma vez e depois colar nos dois clientes que você precisa.

E se você esquecer um cliente, pode regenerar com um clique.

1 curtida

Isso é bem legal. Uma ideia de feed também poderia ser o plugin Pesquisas Salvas (Saved Searches)