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

已发表: 2021-08-22

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

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

有两种可能的方式:

如果您不介意花几美元,您可以选择 StatusCake 或此处提到的其他监控解决方案。 但是,如果您是开发人员或不准备每月花钱,您可以利用 Geekflare API – 站点是否正常?

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

让我向您展示 Python 代码,当您的网站通过Gmail关闭时,该代码会立即通知您。

让我们从探索网站是否启动? 应用程序接口。

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

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

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

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

现在,转到 Geekflare API 页面。

Geekflare API 页面
Geekflare API 页面

您可以找到不同类型的 API,包括网站是否启动? 我们对本文感兴趣的 API。 要使用 Geekflare API,我们需要一个可以通过 RapidAPI 获取的 API 密钥。

单击GET API KEY按钮转到 RapidAPI。

获取 API 密钥按钮
获取 API 密钥按钮

RapidAPI 将在新选项卡中打开,如下所示。

快速API
快速API

我们需要创建一个帐户来获取 API 密钥。 如果您没有,请在 RapidAPI 中创建一个帐户。 创建帐户后登录您的帐户。

RapidAPI 已登录
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 密钥
API 密钥

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

API 密钥
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 全天候运行的云服务器上定期运行,以便在站点关闭时通过电子邮件获得通知。 自动化为我们节省了大量时间和工作。 因此,请像我们在本文中所做的那样使用它。

快乐监控