Codice backend

Ciao,

Sto cercando un modo per eseguire del codice nel backend.

L’obiettivo finale è chiamare l’API di Maxmind e reindirizzare gli utenti provenienti da fuori del Quebec a un altro sito.

Ho trovato questo post e capisco che per farlo dovrei usare un’installazione self-hosted di Discourse.

C’è un modo per fare quello che sto cercando di fare con il piano pro?

Saluti,

Julien

Non conosco la risposta, mi dispiace, ma dovresti pensarci bene prima di adottare una soluzione del genere. Il Geo-IP è davvero inaffidabile.

Dovrai scrivere un plugin per questo. Vedi Sviluppo di plugin Discourse - Parte 1 - Creazione di un plugin di base.

Non c’è bisogno di chiamate API, poiché Discourse include l’integrazione MaxMind già pronta e puoi semplicemente chiamare DiscourseIpInfo.get(ip) dal tuo plugin.

Se sei sul nostro hosting, contatta il nostro supporto. Possiamo aiutarti con plugin personalizzati nel nostro piano Enterprise.

3 Mi Piace

Dovrai scrivere un plugin per questo. Vedi Sviluppare plugin per Discourse - Parte 1 - Creare un plugin di base.

Ma sarò in grado di usare quel plugin con la versione SaaS di Discourse (con il piano pro)?

Non c’è bisogno di chiamate API, poiché Discourse viene fornito con l’integrazione MaxMind già pronta, e puoi semplicemente chiamare DiscourseIpInfo.get(ip) dal tuo plugin.

È sufficientemente preciso per individuare solo utenti dal Quebec, Canada? La maggior parte dei servizi GeoIP che ho trovato aveva una precisione a livello di paese ma non era in grado di individuare una provincia specifica in Canada.

Se sei sul nostro hosting, contatta il nostro supporto. Possiamo aiutarti con plugin personalizzati nel nostro piano Enterprise.

Quindi non è possibile con il piano Standard? La mia ipotesi è che il piano Enterprise costi almeno 3 volte il prezzo del piano pro.

Difficile da dire, ecco cosa ho scoperto sul mio IP:

=> {:country=>"United States",
 :country_code=>"US",
 :region=>"Tennessee",
 :city=>"Nashville",
 :latitude=>36.1315,
 :longitude=>-86.8019,
 :location=>"Nashville, Tennessee, United States",
 :geoname_ids=>[6255149, 6252001, 4644585, 4662168],
 :asn=>7922,
 :organization=>"COMCAST-7922"}

Ci saranno un sacco di modi in cui questo potrebbe avere falsi positivi o negativi. La tua migliore opzione è qualche altra soluzione al problema che stai risolvendo con il reindirizzamento.

Sembra abbastanza preciso, ma molti servizi GeoIP sono più precisi per gli IP provenienti dagli Stati Uniti rispetto agli IP provenienti dal Canada.

Non deve essere positivo o negativo al 100%, è un modo per avere una prima barriera dato che il servizio è offerto solo a persone in Quebec.

1 Mi Piace

Invece di un reindirizzamento completo, potresti essere in grado di utilizzare un componente tematico che, ad esempio, se stai cercando di reindirizzare gli utenti francesi. Potrebbe forse utilizzare Local per popolare un popup nella schermata di accesso per il sito preferito dai francofoni.

1 Mi Piace

Ti consiglierei di includere semplicemente un campo personalizzato utente che dica “Sono in Quebec” che devono selezionare al momento dell’iscrizione.

Se desideri un plugin, tuttavia, potrei essere in grado di aiutarti.

1 Mi Piace

Accoglierei con favore una PR al plugin Locations (come impostazione del sito) per determinare automaticamente la posizione di un utente e impostarla nel suo profilo, che in questa modalità potrebbe essere di sola lettura (un’altra impostazione) per impedirgli di modificarla da solo (ma potrebbe essere modificata dall’amministratore su richiesta).

Poi, come bonus, potresti vedere tutti su una mappa :slight_smile:

Potresti invertire la logica nel nostro plugin di geo-blocking e, invece di bloccare determinate regioni, potresti bloccare tutte tranne alcune regioni. Non dovrebbe essere troppo difficile - punti bonus per la persona che riesce a farlo con una modifica di un carattere.

Suggerimento: riga 37 !

[quote=“Julien Bonnier, post:1, topic:257537, username:Julien_Bonnier”]per farlo dovrei usare una versione self-hosted di Discourse.
[/quote]
Oppure puoi ospitare con communiteq nel piano Professional o superiore. In tal caso, estenderemo anche il plugin per il tuo caso d’uso.

2 Mi Piace