Como ser notificado quando seu site vai para baixo usando a API Geekflare?
Publicados: 2021-08-22Os usuários tentam acessar o seu site, sabe o que aconteceu? Não aparece. Existem alguns erros que você não descobriu antes. Os usuários ficam frustrados e saem do seu site. Então, você perdeu alguns usuários leais com ele.
Como resolver este problema? Como você fica sabendo sobre o site fora do ar antes que seus usuários o encontrem?
Existem duas maneiras possíveis:
Se você não se importa em gastar alguns $, pode escolher uma solução de monitoramento como StatusCake ou outras mencionadas aqui. No entanto, se você é um desenvolvedor ou não está pronto para gastar mensalmente, pode aproveitar as vantagens da API Geekflare - Is Site Up?
O site está ativo? A API verifica se um site está ativo ou inativo em diferentes locais.
Deixe-me mostrar o código Python que notifica você imediatamente quando o seu site cai no Gmail .
Vamos começar explorando o Is Site Up? API.
O site está ativo? API
Antes de verificar a API, precisamos instalar um pacote chamado requests para trabalhar com APIs em Python. Mas, não é necessário usar o único Python. Você pode usar seu idioma preferido. Mas, certifique-se de configurar os itens necessários para fazer uma solicitação de API.
Então, para aqueles que estão usando Python, instale o pacote de solicitações usando o comando pip install requests
Conclua a configuração para outras linguagens (se você escolher outra que não seja Python) e continue com as próximas etapas.
Agora, vá para a página da API Geekflare.

Você pode encontrar diferentes tipos de APIs, incluindo Is Site Up? API na qual estamos interessados neste artigo. Para usar as APIs Geekflare, precisamos de uma chave de API que podemos obter por meio do RapidAPI.
Clique no botão GET API KEY para ir para o RapidAPI.

O RapidAPI será aberto em uma nova guia da seguinte maneira.

Precisamos criar uma conta para obter a chave API. Crie uma conta no RapidAPI se ainda não tiver uma. Faça login em sua conta depois de criar uma conta.

Você encontrará o link Is Site Up? API no topo de todas as APIs Geekflare que estamos procurando. Se não estiver ativo localize-o através da pesquisa disponível e clique sobre ele.
Você obterá o uso da API no lado direito. Selecione o Python com solicitações na seção Trechos de código no lado direito.

Escolha seu idioma preferido com o respectivo pacote se você não estiver usando Python.
Você receberá o código para chamar o site Is Site Up? API. Vamos modificá-lo um pouco, o que nos ajuda a adicionar facilmente mais código posteriormente. Dê uma olhada no código modificado em 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)Substitua a API_KEY por sua própria chave de API da RapidAPI no código acima. Será diferente para cada usuário. Você o encontrará no RapidAPI na seção Parâmetros dos cabeçalhos da seguinte maneira.

Você pode encontrar a mesma chave de API no código de amostra, conforme mostrado abaixo.

Copie a chave e adicione-a ao código acima
Multi-localização
O código acima verifica se o site está funcionando ou não em um único local (Nova York, EUA). Mas podemos testá-lo em diferentes locais com locais no corpo da solicitação.
Outros locais disponíveis são Inglaterra (Londres) e Cingapura. Podemos passar os dados de locais junto com a URL do site da seguinte maneira.
{ "locations": [ "uk", "us", "sg" ], "url": "geekflare.com" }Você pode passar os locais de sua preferência na lista.
Concluímos o código para fazer uma solicitação de API que busca os dados, esteja um site ativo ou não. Agora, é hora de escrever mais um código para enviar um e-mail quando o site estiver fora do ar. Vamos lá.

Recebendo e-mail quando o site está fora do ar
Você pode encontrar o tutorial detalhado sobre como enviar e-mails pelo Gmail em Python ou usar o seguinte código que usa um pacote chamado yagmail especialmente desenvolvido para enviar e-mails do Gmail .
Antes de enviar um e-mail através de sua conta do Gmail, temos que ativar as opções Permitir aplicativos menos seguros . Você pode ligá-lo aqui.
Vamos ver o código.
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, )Você pode encontrar o tutorial completo do yagmail aqui.
Agora, temos o código para solicitações de API e envio de e-mail. Nossa próxima etapa é invocar send_mail sempre que recebermos um status ruim da solicitação da API.
Então, como sabemos se nosso site está inativo ou ativo? Quando solicitamos o Is Site Up? API, ele responderá com alguns dados da seguinte forma.
{'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'}]}Você encontrará uma chave chamada mensagem nele. O valor da mensagem- chave nos diz se o site está ativo ou inativo. Portanto, podem ser dois tipos de mensagens da seguinte forma.
- O site está ativo.
- O site está fora do ar.
Eu acho que você entendeu agora. Assim, enviaremos o e-mail quando recebermos a mensagem “ Site está fora do ar”. O código final terá a seguinte aparência.
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)Você pode atualizar o conteúdo do e-mail como preferir. Concluímos o envio de e-mail sempre que nosso site está fora do ar. Veja o exemplo de e-mail que foi recebido por meio do código acima.

Mas, ainda há um problema.
Temos que executar nosso código para verificar se nosso site está ativo ou inativo. Com que frequência o executamos? Sim, depende da sua preferência. Digamos que tenhamos que verificar a cada uma hora.
Podemos abrir um terminal ou linha de comando e executar nosso código a cada hora. Mas, é um processo repetitivo e enfadonho. E às vezes podemos esquecer de verificar. Portanto, precisamos executar o código automaticamente a cada hora.
Aqui, podemos usar o cron para executar automaticamente nosso código a cada hora. Vamos ver como configurá-lo.
Configuração do cron
Vamos ver as etapas para configurar o cron em um sistema operacional baseado em UNIX.
- Abra o terminal.
- Execute o comando
crontab -eque abre o arquivo crontab no terminal. - Pressione a tecla
ipara entrar no modo INSERT. - Agora, adicione o padrão cron, o diretório Python e nosso diretório de arquivo de código. Você vê o exemplo abaixo.
0 * * * * /usr/bin/python3 /home/sample.py

Definimos o padrão para executar o código a cada hora. Mas, pode ser necessário configurá-lo para cada minuto com base no requisito. Portanto, você pode usar o Crontab Guru ou outras ferramentas cron para gerar o padrão cron para a programação.
É isso. Concluímos a configuração para sermos notificados quando o site estiver fora do ar.
Conclusão
Use o cron para agendar o script para ser executado periodicamente em seu servidor em nuvem que funciona 24 horas por dia, 7 dias por semana, para ser notificado por e-mail quando o site estiver fora do ar. A automação economiza muito tempo e funciona para nós. Portanto, faça uso dele como fizemos neste artigo.
Bom monitoramento
