Accediendo a tus estadísticas desde el API

Una de las consultas más frecuentes es la de poder habilitar un usuario especial que tenga acceso solamente a la sección estadísticas. Implementar esto significaría, o bien crear un usuario específico para dicha sección, lo que es demasiado particular, o armar un sistema de ACL que haría la tarea de administrar usuarios y permisos bastante tediosa.

La buena noticia es que a través del API del nuevo panel y la versatilidad que ofrece se puede llevar a cabo en no más de 2 llamadas.

Como hablamos en posts anteriores, el nuevo panel dispone de un API REST que permite ejecutar absolutamente cualquier funcionalidad disponible para la nueva UI desde cualquier lugar. Si, esto quiere decir que si la nueva UI no es enteramente de su agrado y disponen del tiempo, pueden hacer la suya con las mismas exactas funciones. O en este caso, para algo más sencillo como resolver una necesidad puntual.

Ahora si, vamos al código

En primer lugar, lo que debemos hacer es acceder con nuestro SSO y nuestra clave

https://cloudapi.elserver.com/sso/login/?sso=usuario@dominio.com&password=mypassword

Una vez que hicimos esa llamada, obtendremos un access_token para autenticarnos en las futuras llamadas que realicemos.

Ahora bien, una vez que pudimos acceder y tenemos nuestro access_token, podemos ejecutar el pedido de estadísticas que debe ser un GET a /analytics/web/stat/

Eso es todo. Para que les resulte más fácil, les dejo a continuación un ejemplo en php de como se vería la versión final del código:

<?  /******** Begin Configuraciones *********/  $sso = ''; // SSO con el cual accederemos  $password = ''; // Clave del SSO  $account = ''; // Cuenta de la cual queremos obtener las estadisticas  $pointer = ''; // Dominio puntero del cual queremos las estadisticas (por defecto se completara el mismo que la cuenta)  /********* End Configuraciones **********/  $year = date("Y");  $month = date("m");  $pointer = ($pointer == '')? $account : $pointer;  // Me autentico al API  $auth = json_decode(file_get_contents("https://cloudapi.elserver.com/sso/login/?sso=$sso&password=$password"));  if ($auth->error)
    die($auth->error->message);
$access_token = $auth->access_token;

// Pido las estadisticas de la cuenta
$stats = file_get_contents("https://cloudapi.elserver.com/analytics/web/stat/?access_token=$access_token&account=$account&site=$pointer&year=$year&month=$month&type=report");
if (!$stats)
    die('No hay estadísticas para '.$pointer.' en el mes '.$month.' de '.$year);
die($stats);
?>

Para acceder a la documentación completa del API y toda la funcionalidad disponible, pueden acceder a https://latincloud.com/comunidad/api/

3 opiniones en “Accediendo a tus estadísticas desde el API”

  1. Hola Roberto,

    Las estadísticas se procesan y se almacenan en un solo html. Para hacer lo que me preguntás tenés 2 opciones:

    1- Utilizar el anchor #month que tiene el HTML para comenzar directamente desde esa sección, quedándote de esta forma la llamada:

    $stats = file_get_contents("http://cloudapi.elserver.com/analytics/web/stat/?access_token=$access_token&account=$account&site=$pointer&year=$year&month=$month&type=report#month");

    2- Algo un poco más complejo pero que es exactamente lo que necesitás es capturar el html y en vez de imprimirlo directamente, parsearlo para dejar solamente esa sección. Te paso un ejemplo de una regexp que podés usar en este código para php

    $stats = preg_replace('/^(.+?)(.+?)(.*?<\/table>.*?<\/table>)(.+?)$/is', '\\1\\3', $stats);

    En el script de ejemplo, lo deberías agregar antes del die($stats);

    Espero que te sirva!

  2. Hola!
    No tengo experiencia en PHP pero necesito hacer esto para que mis clientes accedan sólo a las estadísticas de sus sitios Web.
    Haciendo algunas modificaciones (reemplazando algunos ‘ ‘ por comillas con el dato correcto entre ellas) ya he conseguido que me muestre las estadísticas de mi dominio, pero por el momento tengo dos preguntas:

    1. Todos los caracteres con acento salen incorrectamente en la página de estadísticas.
    Probé con default_charset = «utf-8»; agregándolo en elcódigophp pero da error
    ¿Cómo se corrige esto?

    2. Para que el código pida las estadísticas queda expuesta la contraseña de la cuenta de acceso al SSO.
    ¿hay alguna forma de ocultarla o de ingresarla por medio de otro método?
    No se si es habitual o si así debe ser

    Así como está, colocando los datos correctos en «MIEMAIL@DOMINIO.COM.AR» «MI CONTRASEÑA» y «MIDOMINIO»
    funciona, pero me preocupa lo de la contraseña.

    Muchas gracias!
    Gustavo Sáinz

    Sin título 1

    error)
    die($auth->error->message);
    $access_token = $auth->access_token;

    // Pido las estadisticas de la cuenta
    $stats = file_get_contents(«http://cloudapi.elserver.com/analytics/web/stat/?access_token=$access_token&account=$account&site=$pointer&year=$year&month=$month&type=report»);
    if (!$stats)
    die(‘No hay estadísticas para ‘.$pointer.’ en el mes ‘.$month.’ de ‘.$year);
    die($stats);
    ?>

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *