Come ricevere una notifica quando il tuo sito non funziona utilizzando l'API Geekflare?
Pubblicato: 2021-08-22Gli utenti tentano di 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 scegliere 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 .
Cominciamo esplorando 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 usare solo Python. Puoi usare la tua lingua preferita. Ma assicurati di impostare le cose necessarie per effettuare una richiesta API.
Quindi, per coloro che utilizzano Python, installa il pacchetto di richieste utilizzando il comando pip install requests
Completa la configurazione per altri linguaggi (se scegli un linguaggio diverso 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, che ci interessa per questo articolo. Per utilizzare le API Geekflare, abbiamo bisogno di una chiave API che possiamo ottenere registrandoci per l'API Geekflare.
Fai clic sul pulsante Registrati gratuitamente nell'intestazione e crea un account nell'API Geeflare.
Una volta creato il tuo account, verrai reindirizzato alla dashboard dell'API Geekflare. Nella dashboard troverai la chiave API e altri dettagli come la tua email, il piano attivo, ecc.,
Puoi copiare la chiave API. Ora, controlliamo la documentazione di Is Site Up API. Fai clic sull'icona del tuo profilo e sulla documentazione.
Ti reindirizzerà alla documentazione dell'API Geeflare.
Troverai la documentazione dell'API Site status (Is Site Up?) Qui. Vai ad esso.
Otterrai l'utilizzo dell'API sul lato destro. Seleziona Python dalla sezione Frammenti di codice sul lato destro. Scegli la tua lingua preferita se non stai usando Python.
Riceverai il codice per chiamare Is Site Up? API. Modifichiamolo un po 'che ci aiuta ad aggiungere più codice in seguito facilmente. Dai un'occhiata al codice modificato in Python.
import requests import json API_URL = "https://api.geekflare.com/up" def make_api_request(): headers = { 'x-api-key': 'YOUR-API-KEY', 'Content-Type': 'application/json' } payload = json.dumps({"url": "https://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 YOUR-API-KEY con la tua chiave API dalla dashboard dell'API Geekflare. Sarà diverso per ogni utente. Copia la chiave API dalla dashboard e aggiungila al codice precedente
Multi-posizione
Il codice sopra controlla se il sito è attivo o meno da un'unica posizione (New York, USA). Ma possiamo testarlo da una posizione diversa con proxyCountry nel corpo della richiesta.
Altre località disponibili sono Inghilterra (Londra) e Singapore. Possiamo passare i dati proxyCountry insieme all'URL del sito come segue.
{ "proxyCountry": "uk", "url": "geekflare.com" }
Puoi passare qualsiasi posizione che preferisci dalle posizioni disponibili qui.
Abbiamo completato il codice per effettuare una richiesta API che recuperi i dati sull'esistenza o meno di un sito. Ora è il momento di scrivere altro codice che invii la posta quando il sito non funziona. Andiamo.
Ricezione di e-mail quando il sito è inattivo
Puoi trovare il tutorial dettagliato su come inviare email tramite Gmail in Python Oppure utilizzare il seguente codice, che utilizza un pacchetto chiamato yagmail appositamente progettato per inviare email da Gmail .
Prima di inviare una mail tramite il tuo account Gmail, dobbiamo attivare le opzioni Consenti app meno sicure . Puoi accenderlo 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 passaggio successivo consiste nell'invocare send_mail ogni volta che riceviamo uno stato non valido dalla richiesta API.
Quindi, come facciamo a sapere se il nostro sito è inattivo o attivo? Quando richiediamo il sito Is Up? API, risponderà con alcuni dati come segue.
{ "timestamp": 1671545622213, "apiStatus": "success", "apiCode": 200, "message": "Site is up.", "meta": { "url": "https://geekflare.com", "proxyCountry": "United Kingdom", "followRedirect": false, "test": { "id": "riah3dvi04ngaa1jw1b75smiibrus2a7" } }, "data": { "statusCode": 200, "reasonPhrase": "OK" } }
Troverai una chiave chiamata messaggio al suo interno. Il valore del messaggio chiave ci dice se il sito è attivo o inattivo. Quindi, possono essere due tipi di messaggi come segue.
- Il sito è attivo.
- Il sito è inattivo
Penso che tu abbia capito ora. Quindi, invieremo la posta quando riceveremo il messaggio " Il sito è inattivo". Il codice finale avrà il seguente aspetto.
import requests import json import yagmail API_URL = "https://api.geekflare.com/up" def make_api_request(): headers = { 'x-api-key': 'YOUR-API-KEY', 'Content-Type': 'application/json' } payload = json.dumps({ "url": "https://geekflare.com", "followRedirect": True, "proxyCountry": "uk" }) 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 location and error location = data['meta']['proxyCountry'] mail_content = "Your site is down due to unexpected error. See the useful data to resolve errors below.nn" if location: mail_content += f"{location}" mail_content += f"{data['data']['reasonPhrase']}nn" mail_content += "Check the error and resolve it 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.
Ma c'è ancora un problema.
Dobbiamo eseguire il nostro codice per verificare se il nostro sito è attivo o inattivo. 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 dimenticarci di controllarlo. Quindi, dobbiamo eseguire il codice automaticamente ogni ora.
Qui possiamo usare il cron per eseguire automaticamente il nostro codice ogni ora. Vediamo come configurarlo.
Configurazione Cron
Vediamo i passaggi per impostare il cron su un sistema operativo basato su UNIX.
- Terminale aperto.
- Esegui il comando
crontab -e
che apre il file crontab nel terminale. - Premere il tasto
i
per 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. Ma potrebbe essere necessario impostarlo su ogni minuto in base al requisito. Quindi, puoi utilizzare 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 è inattivo.
Conclusione
Usa il cron per pianificare l'esecuzione periodica dello script sul tuo server cloud che funziona 24 ore su 24, 7 giorni su 7 per ricevere una notifica tramite e-mail quando il sito non funziona. L'automazione fa risparmiare molto tempo e funziona per noi. Quindi, usalo come abbiamo fatto in questo articolo.
Buon monitoraggio