¿Cómo recibir una notificación cuando su sitio se cae usando la API de Geekflare?



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

¿Cómo resolver este problema? ¿Cómo llega a conocer el sitio caído antes de que sus 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á activo el sitio?

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

Déjame mostrarte el código de Python que te notifica inmediatamente cuando tu 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 comprobar la API necesitamos instalar un paquete llamado peticiones para trabajar con API en Python. Pero, no es necesario usar 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 usan Python, instalen el paquete de solicitudes usando el comando pip install request

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 API de GeekflarePágina API de Geekflare

Puede encontrar diferentes tipos de API, incluidas ¿Está activo el sitio? API que nos interesa para este artículo. Para usar las API de Geekflare, necesitamos una clave de API que podamos obtener a través de RapidAPI.

Clickea en el OBTENER CLAVE API para ir a RapidAPI.

Botón OBTENER CLAVE APIBotón OBTENER CLAVE API

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

API rápidaAPI rápida

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

RapidAPI iniciado sesiónRapidAPI iniciado sesión

Encontrará el sitio ¿Está activo? API en la parte superior de todas las API de Geekflare que estamos buscando. Si no está activo, búsquelo usando 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ónLenguajes de programación

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

Obtendrá el código para llamar a Is Site Up? API. Vamos a modificarlo un poco, lo que nos ayuda a agregar fácilmente más código 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 la CLAVE API con su propia clave API de RapidAPI en el código anterior. Será diferente para cada usuario. Lo encontrará en RapidAPI bajo el Parámetros de encabezados sección de la siguiente manera.

Clave APIClave API

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

Clave APIClave API

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

Múltiples ubicaciones

El código anterior verifica si el sitio está activo o no desde una sola 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 ubicación 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 obtenga los datos, ya sea que un sitio esté activo o 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 está caído

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 desde Gmail.

Antes de enviar un correo a través de su cuenta de Gmail, tenemos que activar el Permitir aplicaciones menos seguras opciones 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 el enviar correo cada vez que recibimos un mal estado de la solicitud de la API.

Entonces, ¿cómo sabemos que nuestro sitio está inactivo o activo? Cuando solicitamos la ¿Está activo el sitio? 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'}]}

Encontrarás una llave llamada mensaje en eso. El valor de la llave mensaje nos dice si el sitio está activo o inactivo. Por lo tanto, puede haber dos tipos de mensajes de la siguiente manera.

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

Creo que lo tienes ahora. Entonces, enviaremos el correo cuando recibamos el mensaje “El sitio está caído”. El código final se verá de la siguiente manera.

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á caído. Vea el correo de muestra que se ha recibido a través del código anterior.

Correo del sitio inactivoCorreo del sitio inactivo

Pero, todavía hay un problema.

Tenemos que ejecutar nuestro código para verificar si nuestro sitio está activo o inactivo. ¿Con qué frecuencia lo ejecutamos? Sí, depende de tu preferencia. Digamos que tenemos que revisarlo 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 el cron en un sistema operativo basado en UNIX.

Terminal abierta. Ejecute el comando crontab -e que abre el archivo crontab en la terminal. Pulse la tecla i para entrar en el modo INSERTAR. Ahora, agregue el patrón cron, el directorio de Python y nuestro directorio de archivos de código. Usted ve el ejemplo a continuación.

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

croncron

Hemos establecido el patrón para ejecutar el código cada hora. Pero, 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 todo. Hemos completado la configuración para recibir una notificación cuando el sitio esté inactivo.

Conclusión

Use el cron para programar el script 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 esté inactivo. La automatización ahorra mucho tiempo y funciona para nosotros. Entonces, utilícelo como lo hicimos en este artículo.

Monitoreo feliz 🙂

Botón volver arriba