如何使用 Geekflare API 在您的网站出现故障时收到通知?

已发表: 2021-08-22

用户尝试访问您的站点,您知道发生了什么吗? 它没有出现。 有些错误是您之前没有弄清楚的。 用户感到沮丧并离开您的网站。 所以,你失去了一些忠实的用户。

如何解决这个问题呢? 您如何在用户找到网站之前了解该网站?

有两种可能的方法:

如果您不介意花几美元,您可以选择 StatusCake 或此处提到的其他监控解决方案。

但是,如果您是开发人员或不准备按月付费,则可以利用 Geekflare API – Is Site Up?

网站上线了吗? API 从不同的位置检查站点是启动还是关闭。

让我向您展示 Python 代码,当您的网站通过Gmail出现故障时,它会立即通知您。

让我们从探索Is Site Up? 应用程序接口。

网站上线了吗? 应用程序接口

在检查 API 之前,我们需要安装一个名为 requests 的包,以便在 Python 中使用 API。 但是,没有必要只使用 Python。 您可以使用您喜欢的语言。 但请确保您设置了发出 API 请求所需的内容。

因此,对于那些使用 Python 的人,使用命令pip install requests请求

完成其他语言的设置(如果您选择 Python 以外的语言)并继续执行后续步骤。

现在,转到 Geekflare API 页面。

Geekflare-API-页面

您可以找到不同类型的 API,包括 Is Site Up? API,我们对本文感兴趣。 要使用 Geekflare API,我们需要一个 API 密钥,我们可以通过注册 Geekflare API 获得该密钥。

单击标题上的免费注册按钮并在 Geeflare API 中创建一个帐户。

创建 Geekflare API 帐户

创建帐户后,您将被重定向到 Geekflare API 的仪表板。 在仪表板中,您会找到 API 密钥和其他详细信息,例如您的电子邮件、活动计划等。

Geekflare API 仪表板

您可以复制 API 密钥。 现在,让我们检查Is Site Up API 的文档。 单击您的个人资料图标和文档。

Geekflare API 文档

它会将您重定向到 Geeflare API 文档。

您将在此处找到网站状态(网站是否正常运行?) API 文档。 去吧。

您将在右侧获得 API 的用法。 从右侧的代码片段部分选择 Python。 如果您不使用 Python,请选择您的首选语言。

您将获得调用Is Site Up?的代码。 应用程序接口。 让我们稍微修改一下,这有助于我们稍后轻松添加更多代码。 看看 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)

在 Geekflare API 仪表板上用您自己的 API 密钥替换YOUR-API-KEY 。 每个用户都会有所不同。 从仪表板复制 API 密钥并将其添加到上面的代码中

多地点

上面的代码从一个位置(美国纽约)检查站点是否正常运行。 但是,我们可以在请求正文中使用proxyCountry从不同的位置对其进行测试。

其他可用地点是英格兰(伦敦)和新加坡。 我们可以将proxyCountry数据与站点 URL 一起传递,如下所示。

 { "proxyCountry": "uk", "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": 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" } }

您会在其中找到一个名为message的键。 关键消息的值告诉我们站点是运行还是关闭。 因此,可以是如下两种类型的消息。

  • 网站上线了。
  • 网站已关闭

我想你现在明白了。 因此,我们将在收到“站点已关闭”消息时发送邮件。 最终代码如下所示。

 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)

您可以根据需要更新邮件内容。 每当我们的站点关闭时,我们都已完成发送邮件。

但是还有一个问题。

我们必须执行我们的代码来检查我们的站点是启动还是关闭。 我们多久运行一次? 是的,这取决于你的喜好。 假设我们必须每小时检查一次。

我们可以打开一个终端或命令行,每小时执行一次我们的代码。 但这是一个重复的过程,而且很无聊。 有时我们会忘记检查它。 所以,我们需要每小时自动执行一次代码。

在这里我们可以使用 cron 每小时自动执行我们的代码。 让我们看看如何设置它。

计划设定

让我们看看在基于 UNIX 的操作系统上设置 cron 的步骤。

  • 打开终端。
  • 运行命令crontab -e以在终端中打开 crontab 文件。
  • i键进入 INSERT 模式。
  • 现在,添加 cron 模式、Python 目录和我们的代码文件目录。 你看下面的例子。

0 * * * * /usr/bin/python3 /home/sample.py

定时任务
定时任务

我们已将模式设置为每小时执行一次代码。 但您可能需要根据需要将其设置为每分钟。 因此,您可以使用 Crontab Guru 或其他 cron 工具来生成计划的 cron 模式。

而已。 我们已完成设置,以便在站点关闭时收到通知。

结论

使用 cron 安排脚本在 24/7 全天候运行的云服务器上定期运行,以便在站点关闭时通过电子邮件收到通知。 自动化为我们节省了大量时间和工作。 因此,请像我们在本文中所做的那样使用它。

快乐监控