Código de backend

Hola,

Estoy intentando encontrar una forma de ejecutar código en el backend.

El objetivo final es llamar a la API de Maxmind y redirigir a los usuarios que provienen de fuera de Quebec a otro sitio.

Encontré esta publicación y entiendo que para hacer esto tendría que usar una instancia de Discourse autoalojada.

¿Hay alguna forma de hacer lo que intento hacer en el plan pro?

Saludos,

Julien

No sé la respuesta, lo siento, pero deberías pensarlo dos veces antes de adoptar esa solución. La geolocalización IP es realmente poco fiable.

Necesitarás escribir un plugin para eso. Consulta Desarrollo de plugins de Discourse - Parte 1 - Crear un plugin básico.

No hay necesidad de llamadas a la API, ya que Discourse viene con integración de MaxMind lista para usar, y simplemente puedes llamar a DiscourseIpInfo.get(ip) desde tu plugin.

Si estás en nuestro hosting, por favor contacta a nuestro soporte. Podemos ayudarte con plugins personalizados en nuestro plan Enterprise.

3 Me gusta

"

Pero, ¿podré usar ese plugin con la versión SaaS de Discourse (con el plan pro)?

No es necesario realizar llamadas a la API, ya que Discourse viene con la integración de MaxMind de fábrica, y simplemente puedes llamar a DiscourseIpInfo.get(ip) desde tu plugin.

¿Es esto lo suficientemente preciso como para dirigirse solo a los usuarios de Quebec, Canadá? La mayoría de los servicios de GeoIP que encontré tenían una precisión de país, pero no podían dirigirse a una provincia específica en Canadá.

Si estás en nuestro alojamiento, ponte en contacto con nuestro soporte. Podemos ayudarte con plugins personalizados en nuestro plan Enterprise.

¿Así que no es posible con el plan Estándar? Supongo que el plan Enterprise cuesta al menos 3 veces el precio del plan pro.

Es difícil decirlo, esto es lo que descubrí sobre mi IP:

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

Habrá un montón de maneras en que esto podría tener falsos positivos o negativos. Tu mejor opción es alguna otra solución al problema que estás resolviendo con la redirección.

Eso parece lo suficientemente preciso, pero muchos servicios GeoIP son más precisos para IPs de EE. UU. que para IPs de Canadá.

No tiene que ser 100% positivo o negativo, es una forma de tener una primera barrera ya que el servicio se ofrece solo a personas en Quebec.

1 me gusta

En lugar de una redirección completa, podrías usar un componente temático que, por ejemplo, si buscas redirigir a usuarios franceses. Podría usar Local para poblar una ventana emergente en la pantalla de inicio de sesión para el sitio preferido para los francófonos.

1 me gusta

Te recomendaría que simplemente incluyeras un campo personalizado de usuario que diga “Estoy en Quebec” que deban marcar al registrarse.

Sin embargo, si quieres un plugin, podría ayudarte.

1 me gusta

Agradecería una PR al plugin de Ubicaciones (como configuración del sitio) para determinar la ubicación de un usuario automáticamente y establecerla en su perfil, que en este modo podría ser de solo lectura (otra configuración) para evitar que lo cambien ellos mismos (pero podría ser por un administrador a petición).

Luego, como extra, podrías ver a todos en un mapa :slight_smile:

Podrías invertir la lógica de nuestro plugin de bloqueo geográfico y, en lugar de bloquear ciertas regiones, podrías bloquear todas excepto ciertas regiones. No debería ser muy difícil; puntos extra para la persona que pueda hacerlo con una edición de un solo carácter. Pista: ¡línea 37!

[quote=“Julien Bonnier, post:1, topic:257537, username:Julien_Bonnier”]para hacer esto tendría que usar un Discourse autoalojado.
[/quote]
O puedes alojarte con communiteq en el plan Profesional o superior. En ese caso, incluso ampliaremos el plugin para tu caso de uso.

2 Me gusta