Come ha detto Jeff Atwood, l’email è il cuore di Discourse e non dovremmo, né possiamo, ignorarla o aggirarla.
Tuttavia, la realtà può essere più disordinata di quanto immaginiamo: alcune piattaforme non forniscono un indirizzo email, eppure desideriamo integrarle con il nostro Discourse. La soluzione discourse-oauth2-basic è
Il plugin discourse-oauth2-basic è un’estensione OAuth2 a scopo generale, quindi non include funzionalità specifiche per piattaforme particolari. Tuttavia, quando sviluppiamo un autenticatore specifico per una piattaforma che non fornisce un indirizzo email, potremmo voler integrare il sistema di notifica della piattaforma stessa invece di quello email predefinito.
La mia soluzione proposta consiste nel creare un indirizzo email fittizio per l’identità univoca, ad esempio prefisso-piattaforma + id-piattaforma@yourdiscours.com, un validatore email per decidere quale sistema di notifica utilizzare, oppure degli hook e filtri per costruire il mittente durante l’invio di una notifica, scegliendo tra la notifica email predefinita o quella implementata dall’autenticatore. Credo che si tratti di un’implementazione non invasiva per l’architettura esistente.
È assolutamente fattibile. Ad esempio, puoi avere un accesso tramite Steam (che non fornisce un indirizzo email), impostare email finte in una versione forkata del plugin e utilizzare le notifiche push native (disponibili per Windows, macOS, Linux e Android) per tutte le esigenze di notifica.
Sarà sempre necessario un certo lavoro personalizzato per l’integrazione con la piattaforma specifica, e presso Discourse abbiamo alcuni clienti che utilizzano una configurazione del genere con grande successo. Sono alcune delle istanze più grandi in circolazione!
Sì, ma sembra che Discourse invii le notifiche di esportazione direttamente tramite Email::Sender tramite hardcoding, invece di invocare un hook per gli eventi di notifica, come DiscourseEvent