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

http://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("http://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("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);
?>

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

Compartí este artículo

3 Comentarios

  1. Roberto – 23 may 2013 (21:13:12)

    como puedo lograr que solamente me muestre parte de as estadisticas, por ejemplo solo “Historico Mensual”

    • Dev Team – 29 may 2013 (15:02:42)

      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. Gustavo – 08 jul 2013 (17:57:06)

    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);
    ?>

Dejá un comentario

 

Ingreso Clientes

Datos incorrectos. Por favor revisa el e-mail y la contraseña.

Ingresaste correctamente.

Olvidé mi contraseña

Cerrar

Recuperar contraseña

Te llegará un correo con la información acerca de como proceder.

Volver

Cerrar