如何使用 Geekflare API 在您的網站出現故障時收到通知?
已發表: 2021-08-22用戶嘗試訪問您的網站,您知道發生了什麼嗎? 它沒有出現。 有一些你以前沒有發現的錯誤。 用戶感到沮喪並離開您的網站。 所以,你失去了一些忠實的用戶。
如何解決這個問題呢? 您如何在用戶找到該網站之前了解該網站?
有兩種可能的方式:
如果您不介意花幾美元,您可以選擇 StatusCake 或此處提到的其他監控解決方案。 但是,如果您是開發人員或不准備每月花錢,您可以利用 Geekflare API – 站點是否正常?
網站上線了嗎? API 檢查站點是從不同位置啟動還是關閉。
讓我向您展示 Python 代碼,當您的網站通過Gmail關閉時,該代碼會立即通知您。
讓我們從探索網站是否啟動? 應用程序接口。
網站上線了嗎? 應用程序接口
在檢查 API 之前,我們需要安裝一個名為requests的包以使用 Python 中的 API。 但是,沒有必要使用唯一的 Python。 您可以使用您喜歡的語言。 但是,請確保您設置了發出 API 請求所需的內容。
因此,對於那些使用 Python 的人,請使用命令pip install requests安裝請求包
完成其他語言的設置(如果您選擇 Python 以外的語言)並繼續執行後續步驟。
現在,轉到 Geekflare API 頁面。

您可以找到不同類型的 API,包括網站是否啟動? 我們對本文感興趣的 API。 要使用 Geekflare API,我們需要一個可以通過 RapidAPI 獲取的 API 密鑰。
單擊GET API KEY按鈕轉到 RapidAPI。

RapidAPI 將在新選項卡中打開,如下所示。

我們需要創建一個帳戶來獲取 API 密鑰。 如果您沒有,請在 RapidAPI 中創建一個帳戶。 創建帳戶後登錄您的帳戶。

您會找到網站是否已啟動? 位於我們正在尋找的所有 Geekflare API 頂部的 API。 如果它不是活動的,請使用可用的搜索找到它並單擊它。
您將在右側獲得 API 的用法。 從右側的代碼片段部分選擇帶有請求的Python 。

如果您不使用 Python,請使用相應的軟件包選擇您的首選語言。
您將獲得調用Is Site Up?的代碼。 應用程序接口。 讓我們稍微修改一下,這有助於我們以後輕鬆添加更多代碼。 查看 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)在上述代碼中,將API_KEY替換為您自己的來自 RapidAPI 的 API 密鑰。 每個用戶都會有所不同。 您可以在 RapidAPI 的Headers Parameters部分下找到它,如下所示。

您可以在示例代碼中找到相同的 API 密鑰,如下所示。

複製密鑰並添加到上面的代碼中
多地點
上面的代碼檢查站點是否從一個位置(美國紐約)啟動。 但是,我們可以使用請求正文中的位置從不同位置對其進行測試。
其他可用的地點是英格蘭(倫敦)和新加坡。 我們可以將位置數據與站點 URL 一起傳遞,如下所示。
{ "locations": [ "uk", "us", "sg" ], "url": "geekflare.com" }您可以從列表中傳遞您喜歡的位置。
我們已經完成了發出 API 請求的代碼,無論站點是否啟動,該請求都會獲取數據。 現在,是時候編寫更多代碼來在站點關閉時發送郵件了。 我們走吧。
網站關閉時接收電子郵件
您可以找到有關如何在 Python 中通過 Gmail 發送電子郵件的詳細教程或使用以下代碼,該代碼使用一個名為yagmail的包,專門用於從Gmail發送郵件。

在通過您的 Gmail 帳戶發送郵件之前,我們必須打開允許不太安全的應用選項。 你可以在這裡開啟它。
讓我們看看代碼。
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 的完整教程。
現在,我們有了用於 API 請求和發送郵件的代碼。 我們的下一步是每當我們從 API 請求收到錯誤狀態時調用send_mail 。
那麼,我們如何知道我們的網站是關閉還是開啟? 當我們請求Is Site Up? API,它將響應一些數據如下。
{'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'}]}您會在其中找到一個名為message的鍵。 關鍵信息的值告訴我們網站是在運行還是在停機。 所以,可以是以下兩種類型的消息。
- 網站上線了。
- 網站已關閉。
我想你現在明白了。 因此,當我們收到“站點已關閉”消息時,我們將發送郵件。 最終代碼如下所示。
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)您可以根據需要更新郵件的內容。 每當我們的網站關閉時,我們都已完成發送郵件。 查看通過上述代碼收到的示例郵件。

但是,仍然存在問題。
我們必須執行我們的代碼來檢查我們的網站是啟動還是關閉。 我們多久運行一次? 是的,這取決於你的喜好。 假設我們必須每隔一小時檢查一次。
我們可以打開一個終端或命令行,每小時執行一次我們的代碼。 但是,這是一個重複和無聊的過程。 有時我們會忘記檢查它。 所以,我們需要每小時自動執行一次代碼。
在這裡,我們可以利用 cron 每小時自動執行我們的代碼。 讓我們看看如何設置它。
定時設置
讓我們看看在基於 UNIX 的操作系統上設置 cron 的步驟。
- 打開終端。
- 運行命令
crontab -e在終端中打開 crontab 文件。 - 按
i鍵進入 INSERT 模式。 - 現在,添加 cron 模式、Python 目錄和我們的代碼文件目錄。 你看下面的例子。
0 * * * * /usr/bin/python3 /home/sample.py

我們已經設置了每小時執行一次代碼的模式。 但是,您可能需要根據需要將其設置為每分鐘。 因此,您可以使用 Crontab Guru 或其他 cron 工具為計劃生成 cron 模式。
而已。 我們已完成設置,以便在站點關閉時收到通知。
結論
使用 cron 安排腳本在 24/7 全天候運行的雲服務器上定期運行,以便在站點關閉時通過電子郵件獲得通知。 自動化為我們節省了大量時間和工作。 因此,請像我們在本文中所做的那樣使用它。
快樂監控
