Geekflare API Kullanarak Siteniz Çöktüğünde Nasıl Haberdar Edilir?
Yayınlanan: 2021-08-22Kullanıcılar sitenize erişmeye çalışıyor, ne oldu biliyor musunuz? Görünmüyor. Daha önce fark etmediğiniz bazı hatalar var. Kullanıcılar sinirlenir ve sitenizi terk eder. Yani, onunla bazı sadık kullanıcıları kaybettiniz.
Bu sorun nasıl çözülür? Kullanıcılarınız onu bulmadan önce site hakkında nasıl bilgi sahibi olursunuz?
İki olası yol vardır:
Birkaç dolar harcamaktan çekinmiyorsanız, StatusCake veya burada bahsedilenler gibi bir izleme çözümüne gidebilirsiniz. Ancak, geliştiriciyseniz veya aylık harcama yapmaya hazır değilseniz, Geekflare API - Site Up mı?
Site Açıldı mı? API, bir sitenin farklı konumlardan yukarı veya aşağı olup olmadığını kontrol eder.
Siteniz Gmail üzerinden çöktüğünde sizi hemen bilgilendiren Python kodunu göstereyim.
Site Up?'ı keşfetmekle başlayalım mı? API.
Site Açıldı mı? API
API işaretlemeden önce Python'da API'larla çalışmalarına bir paket olarak adlandırılan isteklerini yüklemeniz gerekir. Ancak, yalnızca Python'u kullanmak gerekli değildir. Tercih ettiğiniz dili kullanabilirsiniz. Ancak, bir API isteği yapmak için gerekli şeyleri ayarladığınızdan emin olun.
Yani, Python istekleri yüklemek kullanarak olanlar için komut kullanarak paketlemek pip install requests
Diğer diller için (Python dışında bir seçim yaparsanız) kurulumu tamamlayın ve sonraki adımlara geçin.
Şimdi Geekflare API sayfasına gidin.

Site Up mı? dahil olmak üzere farklı API türleri bulabilirsiniz. Bu makale için ilgilendiğimiz API. Geekflare API'lerini kullanmak için RapidAPI üzerinden alabileceğimiz bir API Anahtarına ihtiyacımız var.
RapidAPI'ye gitmek için API ANAHTARI AL düğmesine tıklayın.

RapidAPI aşağıdaki gibi yeni bir sekmede açılacaktır.

API anahtarını almak için bir hesap oluşturmamız gerekiyor. Hesabınız yoksa RapidAPI'de bir hesap oluşturun. Bir hesap oluşturduktan sonra hesabınızda oturum açın.

Site Yukarı mı? Aradığımız tüm Geekflare API'lerinin başında API. Aktif değilse, mevcut aramayı kullanarak bulun ve tıklayın.
Sağ tarafta API kullanımını göreceksiniz. Sağ taraftaki Kod Parçacıkları bölümünden İstekli Python'u seçin.

Python kullanmıyorsanız ilgili paketle tercih ettiğiniz dili seçin.
Is Site Up'ı aramak için kodu alacaksınız ? API. Daha sonra kolayca daha fazla kod eklememize yardımcı olacak şekilde biraz değiştirelim. Python'daki değiştirilmiş koda bakın.
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)API_KEY'i yukarıdaki kodda RapidAPI'den kendi API anahtarınızla değiştirin. Her kullanıcı için farklı olacaktır. RapidAPI'de Headers Parameters bölümünün altında aşağıdaki gibi bulacaksınız.

Aynı API anahtarını aşağıda gösterildiği gibi örnek kodda bulabilirsiniz.

Anahtarı kopyalayın ve yukarıdaki koda ekleyin
Çoklu Konum
Yukarıdaki kod, sitenin tek bir konumdan (New York, ABD) açık olup olmadığını kontrol eder. Ancak, istek gövdesindeki konumlarla farklı konumlardan test edebiliriz.
Diğer müsait yerler İngiltere (Londra) ve Singapur'dur. Konum verilerini site URL'si ile birlikte aşağıdaki gibi aktarabiliriz.
{ "locations": [ "uk", "us", "sg" ], "url": "geekflare.com" }Listeden tercih ettiğiniz lokasyonları geçebilirsiniz.
Bir sitenin açık olup olmadığına bakılmaksızın verileri getiren bir API isteği yapmak için kodu tamamladık. Şimdi, site çöktüğünde posta gönderen bir kod daha yazmanın zamanı geldi. Hadi gidelim.

Site kapalıyken e-posta alma
Python'da Gmail Üzerinden E-posta Gönderme ile ilgili ayrıntılı öğreticiyi bulabilir veya Gmail'den posta göndermek için özel olarak tasarlanmış yagmail adlı bir paketi kullanan aşağıdaki kodu kullanabilirsiniz.
Gmail hesabınız üzerinden bir posta göndermeden önce, Daha az güvenli uygulamalara izin ver seçeneklerini açmamız gerekiyor. Buradan açabilirsiniz.
Kodu görelim.
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, )Yagmail'in tam eğitimini burada bulabilirsiniz.
Artık API istekleri ve posta göndermek için kodumuz var. Bir sonraki adımımız, API isteğinden kötü durum aldığımızda send_mail'i çağırmaktır.
Peki, sitemizin aşağı veya yukarı olduğunu nasıl anlarız? Site Hazır mı? API, bazı verilerle aşağıdaki gibi yanıt verecektir.
{'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'}]}İçinde mesaj adında bir anahtar bulacaksınız. Anahtar mesajın değeri bize sitenin yukarı mı aşağı mı olduğunu söyler. Yani, aşağıdaki gibi iki tür mesaj olabilir.
- Site açıldı.
- Site kapalı.
Sanırım şimdi anladın. Bu nedenle, “ Site kapalı ” mesajını aldığımızda postayı göndereceğiz . Son kod aşağıdaki gibi görünecektir.
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)Mail içeriğini dilediğiniz gibi güncelleyebilirsiniz. Sitemiz kapalı olduğunda posta göndermeyi tamamladık. Yukarıdaki kod aracılığıyla alınan örnek postaya bakın.

Ancak yine de bir sorun var.
Sitemizin yukarı veya aşağı olup olmadığını kontrol etmek için kodumuzu çalıştırmamız gerekiyor. Ne sıklıkla çalıştırıyoruz? Evet, tercihinize bağlı. Diyelim ki her saatte bir kontrol etmemiz gerekiyor.
Bir terminal veya komut satırı açıp kodumuzu her saat başı çalıştırabiliriz. Ancak, tekrarlayan bir süreç ve sıkıcı. Ve bazen kontrol etmeyi unutabiliriz. Bu yüzden kodu her saat başı otomatik olarak çalıştırmamız gerekiyor.
Burada, kodumuzu her saat otomatik olarak yürütmek için cron'u kullanabiliriz. Nasıl kurulacağını görelim.
Cron Kurulumu
UNIX tabanlı bir işletim sisteminde cron kurma adımlarını görelim.
- Terminali açın.
- Terminalde crontab dosyasını açan
crontab -ekomutunu çalıştırın. - INSERT moduna girmek için
ituşuna basın. - Şimdi cron kalıbını, Python dizinini ve kod dosya dizinimizi ekleyin. Aşağıdaki örneği görüyorsunuz.
0 * * * * /usr/bin/python3 /home/sample.py

Deseni, kodu her saat çalıştıracak şekilde ayarladık. Ancak, gereksinime göre her dakikaya ayarlamanız gerekebilir. Böylece, zamanlama için cron desenini oluşturmak için Crontab Guru veya diğer cron araçlarını kullanabilirsiniz.
Bu kadar. Site kapandığında bildirim almak için kurulumu tamamladık.
Çözüm
Komut dosyasını, site kapalı olduğunda e-posta yoluyla bilgilendirilmek üzere 7/24 çalışan bulut sunucunuzda periyodik olarak çalışacak şekilde programlamak için cron'u kullanın. Otomasyon çok zaman kazandırır ve işimize yarar. Bu nedenle, bu makalede yaptığımız gibi kullanın.
Mutlu İzleme
