Limitar el Chat por País

NOTA: Este tutorial requiere básicos conocimientos de programación en JavaScript.

Con un pequeño script y la ayuda de la API de ipinfo.io (servicio gratuito de geoip), es posible limitar la ejecución del chat de Cliengo de acuerdo al país de la IP del visitante.

Este es un ejemplo de código el chat para que sólo se muestre a visitantes ubicados en Argentina:

<script>
function getAjax(url, success) {
    var xhr = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject('Microsoft.XMLHTTP');
    xhr.open('GET', url);
    xhr.onreadystatechange = function() {
        if (xhr.readyState > 3 && xhr.status == 200) success(xhr.responseText);
    };
    xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest');
    xhr.send();
    return xhr;
}

getAjax('https://ipinfo.io/json', function(data) {
    var data_=JSON.parse(data);
console.log(data_);
if (data_.country == "AR") { // Es user de Argentina <!-- REEMPLAZAR DESDE AQUÍ TU CÓDIGO DE INSTALACIÓN CLIENGO SIN LA ETIQUETA SCRIPT --> (function() { var ldk = document.createElement('script'); ldk.type = 'text/javascript'; ldk.async = true; ldk.src = 'https://s.cliengo.com/weboptimizer/ID_EMPRESA_CLIENGO/ID_WEBSITE_CLIENGO.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ldk, s); })(); <!-- REEMPLAZAR HASTA AQUÍ TU CÓDIGO DE INSTALACIÓN CLIENGO SIN LA ETIQUETA SCRIPT --> } else { console.log("No es user de Argentina"); } }); </script>

 

Si quieres que el chat sólo se muestre en otro país que no sea Argentina, sólo debes reemplazar el código "AR" en data_.country == "AR" por el código del país correspondiente. Puedes verificar cual es es el que identifica a tu país en: https://ipinfo.io/json o si deseas ver el de otros países puedes verlos en http://country.io/names.json

Si deseas agregar más de un país, debes hacerlo de la siguiente manera reemplazando if (data_.country == "AR") por lo siguiente: if ([ "AR","BR","US"].includes(data_.country))

En el caso que desees que tu chatbot aparezca en todos los países menos uno solo (ej: todos los países menos Argentina) puedes reemplazar esta parte del código:

if (data_.country == "AR") { // Es user de Argentina

Por ésto otra línea de código
if (data_.country != "AR") { // No es user de Argentina

Y si lo deseas, para cambiar el mensaje de la consola puedes modificar el siguiente código

} else { console.log("Es user de Argentina"); } });

Por éste otro código
} else { console.log("No es user de Argentina"); } });

IMPORTANTE: Asegúrate de reemplazar el código de Cliengo en la sección del código que corresponde.

 

Observación:

Tener presente que la cuenta gratis de ipinfo tiene una limintación de 50k consultas por mes y arroja el siguiente error:

{
 "status": 429,
 "error": {
   "title": "Rate limit exceeded",
   "message": "You've hit the daily limit for the unauthenticated API. Create an API access token by signing up to get 50k req/month."
 }
}

 

Existe otra opción gratis que ofrece 15k peticiones por hora, solo debes registrarte y luego cambiar la url de la petición del código, no hay que hacer otro cambio: https://freegeoip.app/.