¿Cómo recibir notificaciones cuando su sitio se caiga usando la API de Geekflare?

Publicado: 2021-08-22

Los usuarios intentan acceder a tu sitio, ¿sabes qué pasó? No aparece. Hay algunos errores que no descubrió antes. Los usuarios se frustran y abandonan su sitio. Entonces, perdiste algunos usuarios leales con él.

¿Cómo resolver este problema? ¿Cómo se llega a conocer el sitio antes de que los usuarios lo encuentren?

Hay dos formas posibles:

Si no le importa gastar unos pocos dólares, puede optar por una solución de monitoreo como StatusCake u otras mencionadas aquí. Sin embargo, si es un desarrollador o no está listo para gastar mensualmente, puede aprovechar la API de Geekflare: ¿está el sitio en funcionamiento?

¿Está activo el sitio? La API comprueba si un sitio está activo o inactivo desde diferentes ubicaciones.

Permítame mostrarle el código Python que le notifica inmediatamente cuando su sitio deja de funcionar a través de Gmail .

Comencemos con la exploración de Is Site Up? API.

¿Está activo el sitio? API

Antes de verificar la API, necesitamos instalar un paquete llamado solicitudes para trabajar con API en Python. Pero no es necesario utilizar el único Python. Puede utilizar su idioma preferido. Pero asegúrese de configurar los elementos necesarios para realizar una solicitud de API.

Entonces, para aquellos que están usando Python, instale el paquete de solicitudes usando el comando pip install requests

Complete la configuración para otros idiomas (si elige otro que no sea Python) y continúe con los siguientes pasos.

Ahora, vaya a la página de la API de Geekflare.

Página de la API de Geekflare
Página de la API de Geekflare

Puede encontrar diferentes tipos de API, incluido Is Site Up? API que nos interesa para este artículo. Para usar las API de Geekflare, necesitamos una clave de API que podemos obtener a través de RapidAPI.

Haga clic en el botón OBTENER CLAVE API para ir a RapidAPI.

Botón OBTENER CLAVE API
Botón OBTENER CLAVE API

RapidAPI se abrirá en una nueva pestaña de la siguiente manera.

RapidAPI
RapidAPI

Necesitamos crear una cuenta para obtener la clave API. Cree una cuenta en RapidAPI si no tiene una. Inicie sesión en su cuenta después de crear una cuenta.

RapidAPI conectado
RapidAPI conectado

Encontrará el mensaje ¿Está activo el sitio? API en la parte superior de todas las API de Geekflare que estamos buscando. Si no está activo, búsquelo utilizando la búsqueda disponible y haga clic en él.

Obtendrá el uso de API en el lado derecho. Seleccione Python con solicitudes de la sección Fragmentos de código en el lado derecho.

Lenguajes de programación
Lenguajes de programación

Elija su idioma preferido con el paquete respectivo si no está usando Python.

Obtendrá el código para llamar a Is Site Up? API. Modifiquémoslo un poco, lo que nos ayuda a agregar más código fácilmente más adelante. Eche un vistazo al código modificado en Python.

 import requests API_URL = "https://geekflare.p.rapidapi.com/up" def make_api_request(): headers = { 'content-type': "application/json", 'x-rapidapi-host': "geekflare.p.rapidapi.com", 'x-rapidapi-key': "YOUR_API_KEY" } payload = r'{"url": "https://www.geekflare.com"}' response = requests.request("POST", API_URL, data=payload, headers=headers) return response.json() if __name__ == '__main__': data = make_api_request() print(data)

Reemplace API_KEY con su propia clave API de RapidAPI en el código anterior. Será diferente para cada usuario. Lo encontrará en RapidAPI en la sección Parámetros de encabezados de la siguiente manera.

Clave API
Clave API

Puede encontrar la misma clave de API en el código de muestra que se muestra a continuación.

Clave API
Clave API

Copie la clave y agréguela al código anterior

Multi-ubicación

El código anterior verifica si el sitio está activo o no desde una única ubicación (Nueva York, EE. UU.). Pero podemos probarlo desde diferentes ubicaciones con ubicaciones en el cuerpo de la solicitud.

Otras ubicaciones disponibles son Inglaterra (Londres) y Singapur. Podemos pasar los datos de las ubicaciones junto con la URL del sitio de la siguiente manera.

 { "locations": [ "uk", "us", "sg" ], "url": "geekflare.com" }

Puede pasar las ubicaciones que prefiera de la lista.

Hemos completado el código para realizar una solicitud de API que recupera los datos tanto si un sitio está activo como si no. Ahora es el momento de escribir más código que envíe un correo electrónico cuando el sitio no funcione. Vamos.

Recibir correo electrónico cuando el sitio no funciona

Puede encontrar el tutorial detallado sobre cómo enviar correos electrónicos a través de Gmail en Python o usar el siguiente código que usa un paquete llamado yagmail especialmente diseñado para enviar correos electrónicos desde Gmail .

Antes de enviar un correo a través de su cuenta de Gmail, tenemos que activar las opciones Permitir aplicaciones menos seguras . Puedes activarlo aquí.

Veamos el código.

 def send_mail(): gmail = yagmail.SMTP("gmail", "password") receiver = "[email protected]" subject = "Testing Subject" body = "This is a testing mail" gmail.send( to=receiver, subject=subject, contents=body, )

Puedes encontrar el tutorial completo de yagmail aquí.

Ahora, tenemos código para solicitudes de API y envío de correo. Nuestro siguiente paso es invocar send_mail cada vez que recibimos un mal estado de la solicitud de API.

Entonces, ¿cómo sabemos que nuestro sitio está inactivo o activo? Cuando solicitamos el mensaje Is Site Up? API, responderá con algunos datos de la siguiente manera.

 {'timestamp': 1629556759685, 'apiStatus': 'success', 'apiCode': 201, 'message': 'Site is up.', 'meta': {'url': 'https://www.geekflare.com', 'followRedirect': False, 'test': {'id': 'eu0frmah05mids55elkjgevkzd8ur3vk'}}, 'data': [{'country': 'United States', 'city': 'New York', 'description': 'Site is up.', 'statusCode': 301, 'reasonPhrase': 'Moved Permanently'}]}

En él encontrará una clave llamada mensaje . El valor del mensaje clave nos dice si el sitio está activo o inactivo. Entonces, puede haber dos tipos de mensajes de la siguiente manera.

  • El sitio está activo.
  • El sitio está caído.

Creo que lo tienes ahora. Por lo tanto, enviaremos el correo electrónico cuando recibamos el mensaje "El sitio está inactivo". El código final tendrá el siguiente aspecto.

 import requests import yagmail API_URL = "https://geekflare.p.rapidapi.com/up" def make_api_request(): headers = { 'content-type': "application/json", 'x-rapidapi-host': "geekflare.p.rapidapi.com", 'x-rapidapi-key': "API_KEY" } payload = r'{"url": "https://www.abcd.com"}' response = requests.request("POST", API_URL, data=payload, headers=headers) return response.json() def send_mail(content): gmail = yagmail.SMTP("gmail", "password") receiver = "[email protected]" subject = "Your Site is Down" gmail.send( to=receiver, subject=subject, contents=content, ) if __name__ == '__main__': data = make_api_request() message = data['message'] ## seding the mail if message == 'Site is down.': ## extracting the errors from different locations locations_data = data['data'] mail_content = "Your site is down due to unexpected error. See the useful data to resolve errors below.\n\n" for location in locations_data: mail_content += f"{location['city']}, {location['country']} - {location['error']}\n" mail_content += "\nCheck the error and resolve them as soon as possible." send_mail(mail_content)

Puede actualizar el contenido del correo como prefiera. Hemos completado el envío de correo cada vez que nuestro sitio está inactivo. Vea el correo de muestra que se ha recibido a través del código anterior.

Correo de Site Down
Correo de Site Down

Pero todavía hay un problema.

Tenemos que ejecutar nuestro código para comprobar si nuestro sitio está activo o inactivo. ¿Con qué frecuencia lo ejecutamos? Sí, depende de tu preferencia. Digamos que tenemos que comprobarlo cada hora.

Podemos abrir una terminal o línea de comando y ejecutar nuestro código cada hora. Pero es un proceso repetitivo y aburrido. Y a veces podemos olvidarnos de comprobarlo. Entonces, necesitamos ejecutar el código automáticamente cada hora.

Aquí podemos hacer uso del cron para ejecutar automáticamente nuestro código cada hora. Veamos cómo configurarlo.

Configuración de cron

Veamos los pasos para configurar cron en un sistema operativo basado en UNIX.

  • Terminal abierto.
  • Ejecute el comando crontab -e que abre el archivo crontab en la terminal.
  • Presione la tecla i para ingresar al modo INSERT.
  • Ahora, agregue el patrón cron, el directorio Python y nuestro directorio de archivos de código. Verá el ejemplo a continuación.

0 * * * * /usr/bin/python3 /home/sample.py

Cron
Cron

Hemos establecido el patrón para ejecutar el código cada hora. Sin embargo, es posible que deba configurarlo en cada minuto según el requisito. Por lo tanto, puede usar Crontab Guru u otras herramientas cron para generar el patrón cron para la programación.

Eso es. Hemos completado la configuración para recibir una notificación cuando el sitio esté inactivo.

Conclusión

Utilice cron para programar la secuencia de comandos para que se ejecute periódicamente en su servidor en la nube que funciona las 24 horas del día, los 7 días de la semana, para recibir una notificación por correo electrónico cuando el sitio no funcione. La automatización nos ahorra mucho tiempo y nos funciona. Entonces, utilícelo como lo hicimos en este artículo.

Feliz seguimiento