Cómo usar Mozscape API de MOZ con C#
En este artículo vamos a hablar sobre como usar la API de MOZ conocida como Mozscape API mediante código en C#. Para usar Mozscape API de MOZ como siempre necesitaremos unos conocimientos básicos del protocolo HTTP si queremos entender el código en CSharp (C#).
El objetivo de este ejemplo de código en C# es obtener los parámetros DA (Domain Athority) y PA (Page Authority). Sino sabéis que significan estos dos términos podéis leer el siguiente artículo donde describo que es Domain Authority y Page Authority.
Lo primero que necesitaremos será registrarnos de forma gratuita en la página web de MOZ y conseguir los datos de la API “Access ID” y “Secret Key”. La “Secret Key” hay que generarla y tarda unos minutos en que sea válida, por lo que tendremos que esperar un rato antes de usarla.
Con estos dos valores conseguimos acceso a la API de MOZ (Mozscape) de forma gratuita, pero la funcionalidad está reducida a la obtención de unos pocos parámetros, pero es suficiente para conseguir los valores DA y PA. Podemos ver una lista completa de que valores podemos obtener con la API gratuita y cuales con la API de pago en el enlace http://apiwiki.moz.com/url-metrics#cols
El enlace anterior también nos servirá para obtener los “Bit flags” que no es más que un número con el que se identifica una métrica, por ejemplo el bit flag de la métrica DA es 68719476736
y el bit flag de la métrica PA es 34359738368
.
Usar Mozscape API de MOZ con C#
Una vez que tenemos todos los datos necesarios de los que hemos hablado antes pasamos al apartado de la programación en C#. Para hacer la petición a la API Mozscape se emplea el protocolo HTTP con el método GET.
Un ejemplo de URL de petición sería:
http://lsapi.seomoz.com/linkscape/url-metrics/www.vozidea.com?Cols=68719476736&AccessID=member-ace8g6ka76&Expires=1389795965&Signature=AJzro%2YUw%2Fc6J8xOP35cVRmJVxMc%3D
Vamos a analizar todos los elementos de la URL uno por uno y después hablaremos uno a uno sobre los que necesiten algún tipo de explicación:
- Nombre del host y recurso:
http://lsapi.seomoz.com/linkscape
/ - Definición del conjunto de métricas:
url-metrics
- URL objeto de estudio:
www.vozidea.com
- Métrica/s que queremos obtener:
Cols= 68719476736
- Hora y fecha exacta en la que caduca nuestra petición a la API:
Expires=1389795965
- Firma de autenticación:
Signature=AJzro%2YUw%2Fc6J8xOP35cVRmJVxMc%3D
Nombre del host y recurso
En cuanto al nombre del host sólo decir que podemos emplear tanto la versión HTTP como la versión HTTPS, yo en el código empleare la versión HTTP.
Definición del conjunto de métricas
En cuanto al conjunto de métricas nosotros usaremos “url-metrics”, pero hay más y las podéis encontrar en el siguiente enlace: http://apiwiki.moz.com/categories/api-reference
URL objeto de estudio
Es la URL que queremos analizar, en el ejemplo se trata del dominio www.vozidea.com
.
Métrica/s que queremos obtener
En este parámetro vamos a pararnos un poco más ya que es importante. Se trata del parámetro Cols
en el ejemplo y que tiene como valor un número, el cual consiste en un bit flag (en este caso es el bit flag del DA).
La cuestión es que yo quiero obtener también el PA entonces para que la API me devuelva el DA y el PA tengo dar al parámetro Cols
el valor de la suma de los bit flags de DA (cuyo bit flag es 68719476736) y PA (cuyo bit flag es 34359738368) que sería: Cols=103079215104
Si necesitase obtener más métricas iría sumando sus valores de bit flag y daría el valor de la suma al parámetro Cols
.
Hora y fecha exacta en la que caduca nuestra petición a la API
Se trata del parámetro Expires
, cuyo valor es: total de segundos transcurridos desde la fecha de origen UNIX (1 de Enero de 1970) hasta la actualidad + 300 segundos.
Este valor indica una fecha y hora futura, concretamente 300 segundos (5 minutos) del futuro. Dicho de otra forma cada petición que realicemos a la API caducará a los 5 minutos.
Yo he puesto el valor de 5 minutos porque lo recomendaba en la documentación de la API pero si necesitáis un valor mayor podéis modificarlo en el código. Para generar el parámetro Expires
en el código en C# se emplea la función CreateExpiryTimestamp()
.
Firma de autenticación
Es el parámetro más complejo de obtener y consiste en una firma de autenticidad. Esto le confirma a la API de Mozscape que estamos autorizados a emplear la API.
Para firmar la petición empleamos el parámetro Signature
que consiste en codificar con el algoritmo HMAC-SHA1
un mensaje. Este mensaje está formado por el Access ID
, salto de linea (representado por el par de caracteres \n
) y el parámetro Expires
. Este mensaje lo codificamos con el algoritmo HMAC-SHA1
y empleamos como llave de la codificación el Secret Key
.
Realizar la petición HTTP a la API de Mozscape
Recordemos que todos los datos que forman parte de la URL de la petición si hay caracteres especiales en el valor de algún parámetro estos deben ser codificados con URLEncode, por ello se emplea la función Uri.EscapeDataString()
en el código en C#.
Por último realizamos la petición HTTP a la URL que hemos formado con los parámetros anteriores y la API nos devolverá una respuesta en formato JSON que puede ser por ejemplo:
{"pda":14.931787896224872,"upa":25.93463975359981}
En esta respuesta “pda” y “upa” son los valores del DA y PA de www.vozidea.com.
Y ya tenemos todo listo para descargar el proyecto en C# y empezar a experimentar.
Si os ha gustado el artículo de cómo usar Mozscape API de MOZ con C# o si tenéis dudas no dudéis en comentar.