Cómo usar Mozscape API de MOZ con C#

En Desarrollo, Tutoriales y Guías, Webmasters por

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.

Cómo usar Mozscape API de MOZ con C#

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.

charp mozscape api

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.