Jak otrzymać powiadomienie, gdy Twoja witryna przestanie działać za pomocą interfejsu API Geekflare?
Opublikowany: 2021-08-22Użytkownicy próbują uzyskać dostęp do Twojej witryny, wiesz, co się stało? To się nie pojawia. Jest kilka błędów, których wcześniej nie znalazłeś. Użytkownicy są sfrustrowani i opuszczają Twoją witrynę. Tak więc straciłeś z nim kilku lojalnych użytkowników.
Jak rozwiązać ten problem? Jak dowiedzieć się o witrynie w dół, zanim użytkownicy ją znajdą?
Istnieją dwa możliwe sposoby:
Jeśli nie masz nic przeciwko wydaniu kilku $, możesz wybrać rozwiązanie do monitorowania, takie jak StatusCake lub inne wymienione tutaj. Jeśli jednak jesteś programistą lub nie jesteś gotowy wydawać co miesiąc, możesz skorzystać z interfejsu API Geekflare – Czy strona działa?
Czy witryna działa? API sprawdza, czy witryna działa w różnych lokalizacjach, czy nie.
Pokażę Ci kod Pythona, który natychmiast powiadamia Cię, gdy Twoja witryna przestaje działać przez Gmaila .
Zacznijmy od zbadania strony Is Site Up? API.
Czy witryna działa? API
Przed sprawdzeniem API musimy zainstalować pakiet o nazwie request do pracy z API w Pythonie. Ale nie jest konieczne używanie jedynego Pythona. Możesz użyć swojego preferowanego języka. Ale upewnij się, że skonfigurowałeś wymagane rzeczy, aby wysłać żądanie API.
Tak więc dla tych, którzy używają Pythona, zainstaluj pakiet request za pomocą polecenia pip install requests
Zakończ konfigurację dla innych języków (jeśli wybierzesz inny niż Python) i przejdź do kolejnych kroków.
Teraz przejdź do strony API Geekflare.

Możesz znaleźć różne typy interfejsów API, w tym Is Site Up? API, które nas interesuje w tym artykule. Aby korzystać z API Geekflare, potrzebujemy klucza API, który możemy uzyskać przez RapidAPI.
Kliknij przycisk GET API KEY , aby przejść do RapidAPI.

RapidAPI otworzy się w nowej karcie w następujący sposób.

Aby otrzymać klucz API, musimy założyć konto. Utwórz konto w RapidAPI, jeśli go nie masz. Zaloguj się na swoje konto po utworzeniu konta.

Znajdziesz witrynę Is Site Up? API na górze wszystkich interfejsów API Geekflare, których szukamy. Jeśli nie jest aktywny, znajdź go za pomocą dostępnego wyszukiwania i kliknij go.
Korzystanie z API zobaczysz po prawej stronie. Wybierz Pythona z żądaniami z sekcji Fragmenty kodu po prawej stronie.

Wybierz preferowany język z odpowiednim pakietem, jeśli nie używasz Pythona.
Otrzymasz kod do wywołania strony Is Site Up? API. Zmodyfikujmy to trochę, co pomoże nam później łatwo dodać więcej kodu. Spójrz na zmodyfikowany kod w Pythonie.
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)Zastąp API_KEY własnym kluczem API z RapidAPI w powyższym kodzie. Dla każdego użytkownika będzie inaczej. Znajdziesz go w RapidAPI w sekcji Parametry nagłówków w następujący sposób.

Ten sam klucz API można znaleźć w przykładowym kodzie, jak pokazano poniżej.

Skopiuj klucz i dodaj go do powyższego kodu
Wiele lokalizacji
Powyższy kod sprawdza, czy witryna jest dostępna z jednego miejsca (Nowy Jork, USA). Możemy jednak przetestować go z różnych lokalizacji z lokalizacjami w treści żądania.
Inne dostępne lokalizacje to Anglia (Londyn) i Singapur. Możemy przekazać dane lokalizacji wraz z adresem URL witryny w następujący sposób.
{ "locations": [ "uk", "us", "sg" ], "url": "geekflare.com" }Możesz podać preferowane lokalizacje z listy.
Zakończyliśmy kod, aby wysłać żądanie API, które pobiera dane, czy witryna działa, czy nie. Teraz nadszedł czas, aby napisać więcej kodu, który wysyła wiadomość e-mail, gdy witryna nie działa. Chodźmy.
Otrzymywanie wiadomości e-mail, gdy witryna nie działa
Możesz znaleźć szczegółowy samouczek Jak wysyłać e-maile przez Gmaila w Pythonie lub użyć poniższego kodu, który używa pakietu o nazwie yagmail, zaprojektowanego specjalnie do wysyłania e-maili z Gmaila .

Przed wysłaniem wiadomości e-mail za pośrednictwem konta Gmail musimy włączyć opcje Zezwalaj na mniej bezpieczne aplikacje . Możesz to włączyć tutaj.
Zobaczmy kod.
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, )Pełny samouczek dotyczący yagmaila znajdziesz tutaj.
Teraz mamy kod dla żądań API i wysyłania poczty. Naszym następnym krokiem jest wywołanie send_maila za każdym razem, gdy otrzymamy zły stan z żądania API.
Skąd więc wiemy, że nasza witryna jest niedostępna lub nie działa? Kiedy poprosimy o Czy witryna jest aktywna? API, odpowie niektórymi danymi w następujący sposób.
{'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'}]}Znajdziesz w nim klucz o nazwie wiadomość . Wartość kluczowego komunikatu mówi nam, czy witryna działa, czy nie. Tak więc mogą być dwa rodzaje wiadomości w następujący sposób.
- Witryna działa.
- Witryna nie działa.
Myślę, że teraz to rozumiesz. Tak więc wyślemy wiadomość, gdy otrzymamy wiadomość „ Witryna nie działa.”. Ostateczny kod będzie wyglądał następująco.
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)Możesz aktualizować treść wiadomości według własnego uznania. Zakończyliśmy wysyłanie poczty, gdy nasza witryna nie działa. Zobacz przykładową wiadomość e-mail otrzymaną za pomocą powyższego kodu.

Ale nadal jest problem.
Musimy wykonać nasz kod, aby sprawdzić, czy nasza strona działa, czy nie. Jak często go uruchamiamy? Tak, to zależy od twoich preferencji. Powiedzmy, że musimy to sprawdzać co godzinę.
Możemy otworzyć terminal lub wiersz poleceń i wykonywać nasz kod co godzinę. Ale jest to powtarzalny i nudny proces. A czasami możemy zapomnieć to sprawdzić. Dlatego musimy wykonywać kod automatycznie co godzinę.
Tutaj możemy skorzystać z crona, aby co godzinę automatycznie wykonywał nasz kod. Zobaczmy, jak to skonfigurować.
Konfiguracja Crona
Zobaczmy, jak skonfigurować crona w systemie operacyjnym opartym na UNIX.
- Otwórz terminal.
- Uruchom polecenie
crontab -ektóre otwiera plik crontab w terminalu. - Naciśnij klawisz
iaby wejść w tryb INSERT. - Teraz dodaj wzorzec cron, katalog Python i nasz katalog plików kodu. Widzisz poniższy przykład.
0 * * * * /usr/bin/python3 /home/sample.py

Ustawiliśmy wzorzec na wykonywanie kodu co godzinę. Ale może być konieczne ustawienie go na co minutę w zależności od wymagań. Możesz więc użyć Crontab Guru lub innych narzędzi crona, aby wygenerować wzór crona dla harmonogramu.
Otóż to. Zakończyliśmy konfigurację, aby otrzymywać powiadomienia, gdy witryna nie działa.
Wniosek
Użyj crona, aby zaplanować okresowe uruchamianie skryptu na serwerze w chmurze, który działa 24 godziny na dobę, 7 dni w tygodniu, aby otrzymywać powiadomienia e-mailem, gdy witryna nie działa. Automatyzacja oszczędza dużo czasu i pracuje dla nas. Skorzystaj z tego tak, jak zrobiliśmy to w tym artykule.
Miłego monitorowania
