Come ricevere una notifica quando il tuo sito non funziona utilizzando l'API Geekflare?
Pubblicato: 2021-08-22Gli utenti provano ad accedere al tuo sito, sai cosa è successo? Non si presenta. Ci sono alcuni errori che non hai capito prima. Gli utenti si sentono frustrati e lasciano il tuo sito. Quindi, hai perso alcuni utenti fedeli con esso.
Come risolvere questo problema? Come fai a conoscere il sito prima che i tuoi utenti lo trovino?
Ci sono due modi possibili:
Se non ti dispiace spendere qualche dollaro, puoi optare per una soluzione di monitoraggio come StatusCake o altri menzionati qui. Tuttavia, se sei uno sviluppatore o non sei pronto a spendere mensilmente, puoi sfruttare l'API Geekflare – Is Site Up?
Il sito è attivo? L'API controlla se un sito è attivo o inattivo da posizioni diverse.
Lascia che ti mostri il codice Python che ti avvisa immediatamente quando il tuo sito non funziona tramite Gmail .
Iniziamo con l'esplorazione di Is Site Up? API.
Il sito è attivo? API
Prima di controllare l'API, dobbiamo installare un pacchetto chiamato request per lavorare con le API in Python. Ma non è necessario utilizzare l'unico Python. Puoi usare la tua lingua preferita. Tuttavia, assicurati di impostare le cose necessarie per effettuare una richiesta API.
Quindi, per coloro che usano Python, installa il pacchetto delle richieste usando il comando pip install requests
Completa la configurazione per altre lingue (se scegli una lingua diversa da Python) e continua con i passaggi successivi.
Ora vai alla pagina dell'API Geekflare.

Puoi trovare diversi tipi di API tra cui Is Site Up? API a cui siamo interessati per questo articolo. Per utilizzare le API Geekflare abbiamo bisogno di una chiave API che possiamo ottenere tramite RapidAPI.
Fare clic sul pulsante OTTIENI CHIAVE API per accedere a RapidAPI.

RapidAPI si aprirà in una nuova scheda come segue.

Dobbiamo creare un account per ottenere la chiave API. Crea un account in RapidAPI se non ne hai uno. Accedi al tuo account dopo aver creato un account.

Troverai il sito Is Up? API in cima a tutte le API Geekflare che stiamo cercando. Se non è attivo trovalo utilizzando la ricerca disponibile e cliccaci sopra.
Otterrai l'utilizzo dell'API sul lato destro. Seleziona Python con richieste dalla sezione Frammenti di codice sul lato destro.

Scegli la tua lingua preferita con il rispettivo pacchetto se non stai usando Python.
Riceverai il codice per chiamare Is Site Up? API. Modifichiamolo un po 'che ci aiuta ad aggiungere facilmente più codice in seguito. Dai un'occhiata al codice modificato in 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)Sostituisci API_KEY con la tua chiave API da RapidAPI nel codice sopra. Sarà diverso per ogni utente. Lo troverai in RapidAPI nella sezione Parametri delle intestazioni come segue.

Puoi trovare la stessa chiave API nel codice di esempio come mostrato di seguito.

Copia la chiave e aggiungila al codice sopra
Multi-location
Il codice sopra controlla se il sito è attivo o meno da un'unica posizione (New York, USA). Tuttavia, possiamo testarlo da posizioni diverse con posizioni nel corpo della richiesta.
Altre località disponibili sono Inghilterra (Londra) e Singapore. Possiamo passare i dati sulle posizioni insieme all'URL del sito come segue.
{ "locations": [ "uk", "us", "sg" ], "url": "geekflare.com" }Puoi passare le posizioni che preferisci dall'elenco.
Abbiamo completato il codice per effettuare una richiesta API che recuperi i dati indipendentemente dal fatto che un sito sia attivo o meno. Ora è il momento di scrivere un altro codice che invii una mail quando il sito è inattivo. Andiamo.
Ricevere email quando il sito è inattivo
Puoi trovare il tutorial dettagliato su Come inviare e-mail tramite Gmail in Python oppure utilizzare il codice seguente che utilizza un pacchetto chiamato yagmail appositamente progettato per inviare e-mail da Gmail .

Prima di inviare una mail tramite il tuo account Gmail, dobbiamo attivare le opzioni Consenti app meno sicure . Puoi attivarlo qui.
Vediamo il codice.
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, )Puoi trovare il tutorial completo di yagmail qui.
Ora abbiamo il codice per le richieste API e l'invio di posta. Il nostro prossimo passo è invocare send_mail ogni volta che riceviamo uno stato non valido dalla richiesta API.
Quindi, come facciamo a sapere che il nostro sito è inattivo o attivo? Quando richiediamo il sito è attivo? API, risponderà con alcuni dati come segue.
{'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'}]}Troverai una chiave chiamata messaggio in essa. Il valore del messaggio chiave ci dice se il sito è attivo o meno. Quindi, possono essere due tipi di messaggi come segue.
- Il sito è attivo.
- Il sito è inattivo.
Penso che tu l'abbia capito adesso. Quindi, invieremo l'e-mail quando riceveremo il messaggio "Il sito è inattivo.". Il codice finale sarà il seguente.
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)Puoi aggiornare il contenuto della mail come preferisci. Abbiamo completato l'invio della posta ogni volta che il nostro sito è inattivo. Vedi la mail di esempio che è stata ricevuta tramite il codice sopra.

Ma c'è ancora un problema.
Dobbiamo eseguire il nostro codice per verificare se il nostro sito è attivo o meno. Quanto spesso lo eseguiamo? Sì, dipende dalle tue preferenze. Diciamo che dobbiamo controllarlo ogni ora.
Possiamo aprire un terminale o una riga di comando ed eseguire il nostro codice ogni ora. Ma è un processo ripetitivo e noioso. E a volte possiamo dimenticare di controllarlo. Quindi, dobbiamo eseguire il codice automaticamente ogni ora.
Qui possiamo usare cron per eseguire automaticamente il nostro codice ogni ora. Vediamo come impostarlo.
Configurazione cron
Vediamo i passaggi per configurare il cron su un sistema operativo basato su UNIX.
- Terminale aperto.
- Esegui il comando
crontab -eche apre il file crontab nel terminale. - Premere il tasto
iper entrare nella modalità INSERT. - Ora aggiungi il modello cron, la directory Python e la nostra directory del file di codice. Vedi l'esempio qui sotto.
0 * * * * /usr/bin/python3 /home/sample.py

Abbiamo impostato il modello per eseguire il codice ogni ora. Tuttavia, potrebbe essere necessario impostarlo su ogni minuto in base al requisito. Quindi, puoi usare Crontab Guru o altri strumenti cron per generare il modello cron per la pianificazione.
Questo è tutto. Abbiamo completato la configurazione per ricevere una notifica quando il sito non è disponibile.
Conclusione
Usa cron per programmare l'esecuzione periodica dello script sul tuo server cloud attivo 24 ore su 24, 7 giorni su 7, per ricevere una notifica tramite e-mail quando il sito è inattivo. L'automazione fa risparmiare molto tempo e lavora per noi. Quindi, usalo come abbiamo fatto in questo articolo.
Buon monitoraggio
