Cum să fiți notificat când site-ul dvs. se defectează folosind Geekflare API?
Publicat: 2021-08-22Utilizatorii încearcă să acceseze site-ul tău, știi ce s-a întâmplat? Nu apare. Există unele erori pe care nu le-ați dat seama înainte. Utilizatorii sunt frustrați și părăsesc site-ul dvs. Deci, ai pierdut câțiva utilizatori loiali cu el.
Cum se rezolvă această problemă? Cum afli despre site-ul înainte ca utilizatorii să-l găsească?
Există două moduri posibile:
Dacă nu vă deranjează să cheltuiți câțiva dolari, puteți alege o soluție de monitorizare precum StatusCake sau altele menționate aici.
Cu toate acestea, dacă sunteți dezvoltator sau nu sunteți pregătit să cheltuiți lunar, puteți profita de Geekflare API – Is Site Up?
Site Up este? API verifică dacă un site este sus sau jos din locații diferite.
Permiteți-mi să vă arăt codul Python care vă anunță imediat când site-ul dvs. se blochează prin Gmail .
Să începem cu a explora site-ul Is Site Up? API.
Site Up este? API
Înainte de a verifica API-ul, trebuie să instalăm un pachet numit cereri pentru a lucra cu API-uri în Python. Dar, nu este necesar să folosiți doar Python. Puteți folosi limba preferată. Dar asigurați-vă că ați configurat lucrurile necesare pentru a face o solicitare API.
Deci, pentru cei care folosesc Python, instalează pachetul de solicitări folosind comanda pip install requests
Finalizați configurarea pentru alte limbi (dacă alegeți alta decât Python) și continuați cu pașii următori.
Acum, accesați pagina Geekflare API.
Puteți găsi diferite tipuri de API-uri, inclusiv Is Site Up? API, care ne interesează pentru acest articol. Pentru a folosi API-urile Geekflare, avem nevoie de o cheie API pe care o putem obține prin înscrierea la API-ul Geekflare.
Faceți clic pe butonul Înregistrați -vă gratuit din antet și creați un cont în Geeflare API.
După ce vă creați contul, veți fi redirecționat către tabloul de bord al Geekflare API. În tabloul de bord, veți găsi cheia API și alte detalii precum e-mailul, planul activ etc.,
Puteți copia cheia API. Acum, să verificăm documentația API -ului Is Site Up . Faceți clic pe pictograma profilului și pe documentație.
Vă va redirecționa către documentația Geeflare API.
Veți găsi documentația API pentru starea site-ului (este site up?) aici. Du-te la el.
Veți obține utilizarea API-ului în partea dreaptă. Selectați Python din secțiunea Fragmente de cod din partea dreaptă. Alegeți limba preferată dacă nu utilizați Python.
Veți primi codul pentru a apela site-ul Is Site Up? API. Să-l modificăm puțin, ceea ce ne ajută să adăugăm mai mult cod mai târziu cu ușurință. Aruncă o privire la codul modificat în 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)
Înlocuiți YOUR-API-KEY cu propria dvs. cheie API din tabloul de bord Geekflare API. Va fi diferit pentru fiecare utilizator. Copiați cheia API din tabloul de bord și adăugați-o la codul de mai sus
Multi-Locație
Codul de mai sus verifică dacă site-ul este deschis sau nu dintr-o singură locație (New York, SUA). Dar, îl putem testa dintr-o locație diferită cu proxyCountry în corpul solicitării.
Alte locații disponibile sunt Anglia (Londra) și Singapore. Putem transmite datele proxyCountry împreună cu adresa URL a site-ului, după cum urmează.
{ "proxyCountry": "uk", "url": "geekflare.com" }
Puteți trece orice locație pe care o preferați din locațiile disponibile aici.
Am completat codul pentru a face o solicitare API care preia datele dacă un site este activ sau nu. Acum, este timpul să scrieți mai mult cod care trimite e-mail atunci când site-ul este oprit. Sa mergem.
Primirea e-mailului când site-ul este oprit
Puteți găsi tutorialul detaliat despre cum să trimiteți e-mailuri prin Gmail în Python Sau folosiți următorul cod, care folosește un pachet numit yagmail special conceput pentru a trimite e-mailuri din Gmail .
Înainte de a trimite un e-mail prin contul dvs. Gmail, trebuie să activăm opțiunile Permiteți aplicații mai puțin sigure . O poți activa aici.
Să vedem codul.
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, )
Puteți găsi tutorialul complet al yagmail aici.
Acum, avem cod pentru solicitările API și trimiterea de e-mailuri. Următorul nostru pas este să invocăm send_mail ori de câte ori primim o stare proastă din cererea API.
Deci, de unde știm că site-ul nostru este în jos sau în sus? Când solicităm site-ul este deschis? API, va răspunde cu unele date după cum urmează.
{ "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" } }
Veți găsi în ea o cheie numită mesaj . Valoarea mesajului cheie ne spune dacă site-ul este sus sau jos. Deci, pot fi două tipuri de mesaje, după cum urmează.
- Site-ul este deschis.
- Site-ul este oprit
Cred că l-ai înțeles acum. Așadar, vom trimite e-mailul când primim mesajul „ Site-ul este oprit”. Codul final va arăta după cum urmează.
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)
Puteți actualiza conținutul e-mailului după cum doriți. Am finalizat trimiterea e-mailurilor ori de câte ori site-ul nostru este oprit.
Dar mai există o problemă.
Trebuie să executăm codul nostru pentru a verifica dacă site-ul nostru este sus sau jos. Cât de des îl rulăm? Da, depinde de preferințele tale. Să presupunem că trebuie să verificăm în fiecare oră.
Putem deschide un terminal sau o linie de comandă și să ne executăm codul în fiecare oră. Dar este un proces repetitiv și plictisitor. Și uneori putem uita să-l verificăm. Deci, trebuie să executăm codul automat în fiecare oră.
Aici putem folosi cronul pentru a ne executa automat codul în fiecare oră. Să vedem cum să-l setăm.
Configurare Cron
Să vedem pașii pentru a configura cron-ul pe un sistem de operare bazat pe UNIX.
- Deschideți terminalul.
- Rulați comanda
crontab -e
care deschide fișierul crontab în terminal. - Apăsați tasta
i
pentru a intra în modul INSERT. - Acum, adăugați modelul cron, directorul Python și directorul nostru de fișiere de cod. Vedeți exemplul de mai jos.
0 * * * * /usr/bin/python3 /home/sample.py
Am stabilit modelul pentru a executa codul în fiecare oră. Dar poate fi necesar să-l setați la fiecare minut în funcție de cerință. Deci, puteți utiliza Crontab Guru sau alte instrumente cron pentru a genera modelul cron pentru program.
Asta e. Am finalizat configurarea pentru a primi notificări când site-ul este oprit.
Concluzie
Utilizați cron pentru a programa scriptul să ruleze periodic pe serverul dvs. cloud care rulează 24/7 pentru a primi notificări prin e-mail când site-ul este oprit. Automatizarea economisește mult timp și funcționează pentru noi. Așadar, folosiți-l așa cum am făcut-o în acest articol.
Monitorizare fericită