Como receber SMS do Python flask
A maneira mais simples de receber SMS do Python é usar a API HTTP/Rest de SMS integrada do Ozeki SMS Gateway. Quando você usa essa API, receberá mensagens SMS enviando uma requisição HTTP GET para o gateway de SMS. A resposta HTTP Post conterá as mensagens formatadas em JSON. O gateway de SMS enviará as mensagens SMS para o aplicativo de console Python e retornará uma resposta HTTP 200 OK para sua requisição.
O exemplo de código Python para SMS abaixo demonstra como você pode receber SMS usando a API HTTP Rest de SMS do Ozeki SMS Gateway com a biblioteca Python ozekilibsrest. Esta biblioteca é fornecida gratuitamente e você pode usá-la e modificá-la em qualquer um de seus projetos.
ReceiveSms.py
from flask import Flask, render_template, request from ozekilibsrest import Configuration, MessageApi app = Flask(__name__) configuration = Configuration( username="http_user", password="qwe123", api_url="http://127.0.0.1:9509/api" ) api = MessageApi(configuration) logs = [] @app.route('/', methods=['GET', 'POST']) def index(): if request.method == 'POST': messages = api.download_incoming() message_count_string = messages.__str__() logs.append(message_count_string) for message in messages.messages: message_string = message.__str__() logs.append(message_string) return render_template('ReceiveSms.html', logs=logs) if __name__ == '__main__': app.run()
ReceiveSms.html
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Receber SMS com Ozeki SMS Gateway</title> <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous"> </head> <body> <form action="/" method="POST" class="form-group" style="width: 40%; margin-top: 10vh; margin-left: 30%; display: flex; flex-direction: column; height: 10vh; justify-content: space-evenly;"> <button class="btn btn-primary" style="font-weight: 600;" type="submit" name="submit" value="download">Baixar</button> </form> <ul style="width: 40%; margin-left: 30%; height: 70vh; overflow-y: scroll;" class="list-group card"> <li class="list-group-item card"><b>Logs:</b></li> {% if logs %} {% for log in logs %} <li class="list-group-item">{{ log }}</li> {% endfor %} {% endif %} </ul> </body> </html>
Como usar o exemplo de SMS em Python:
Este exemplo de SMS em Python pode ser usado em qualquer aplicação Python. Para usá-lo, você deve instalar o pacote ozekilibsrest com o comando pip install ozekilibsrest. Após a instalação do pacote, você deve incluir a diretiva "from ozekilibsrest import Configuration, Message, MessageApi" no cabeçalho do seu código-fonte Python. Isso permitirá que você use as classes fornecidas pela biblioteca ozekilibsrest. Você pode usar a classe Message para criar o SMS. Você pode usar a classe MessageApi para enviar o SMS para o gateway de SMS. O gateway de SMS encaminhará sua mensagem para a rede móvel através de uma conexão sem fio ou pela Internet.
Baixar ReceiveSms.py
O código-fonte explicado neste artigo pode ser baixado, usado e modificado gratuitamente.
Download: ReceiveSms.py.zip (1.40Kb)
A pasta ReceiveSms.py contém o script do exemplo de SMS em Python que mostrará como receber mensagens SMS usando Python.
Para instalar a biblioteca ozekilibsrest, você deve abrir o prompt de comando e usar o seguinte comando. Isso instalará a biblioteca ozekilibsrest e as dependências necessárias.
pip install ozekilibsrest
Para instalar a biblioteca flask, você deve abrir o prompt de comando e usar o seguinte comando. Isso instalará a biblioteca flask e as dependências necessárias.
pip install flask
Para receber SMS do Python:
- Baixe e instale o Python
- Instale a biblioteca ozekilibsrest usando pip ou codna
- Instale a biblioteca flask usando pip ou codna
- Baixe o arquivo ReceiveSms.py.zip
- Extraia o arquivo .zip da pasta Downloads
- Abra o arquivo ReceiveSms.py em qualquer editor de texto
- Inicie o Ozeki SMS Gateway
- Crie um usuário HTTP API no Ozeki
- Execute o código ReceiveSms.py usando o prompt de comando para enviar as mensagens SMS de teste
- Verifique a caixa Enviados no Ozeki SMS Gateway
Instale o Ozeki SMS Gateway e crie um usuário HTTP API
Para poder enviar SMS a partir do Python Flask, primeiro você precisa instalar o Ozeki SMS Gateway. O SMS Gateway pode ser instalado no mesmo computador onde você desenvolve seu código Python. Após a instalação, o próximo passo é conectar o Ozeki SMS Gateway à rede móvel. Você pode enviar um SMS de teste a partir da interface gráfica do Ozeki para verificar se sua conexão com a rede móvel está funcionando. O passo final para preparar seu ambiente é criar um usuário de API HTTP para SMS. Crie um usuário com o nome "http_user" e senha "qwe123" para que o exemplo funcione sem modificações.
Após configurar o ambiente, você pode executar seu código Python.
URL da API HTTP para enviar SMS a partir do Python Flask
Para enviar SMS a partir do Python Flask, seu código Python precisará fazer uma requisição HTTP para o SMS Gateway. A URL da API é mostrada abaixo. Observe que o endereço IP (127.0.0.1) deve ser substituído pelo endereço IP do seu SMS Gateway. Se o Ozeki SMS Gateway estiver instalado no mesmo computador onde o aplicativo Python Flask está rodando, pode ser 127.0.0.1. Se estiver instalado em um computador diferente, deve ser o endereço IP desse computador.
http://127.0.0.1:9509/api?action=rest
Autenticação HTTP para enviar SMS a partir do Python Flask
Para autenticar o cliente de SMS Python Flask, você precisa enviar o nome de usuário e senha em uma string codificada em base64 para o servidor em uma requisição HTTP. O formato usado é: base64(nome_de_usuário+":"+senha). Em Python, você pode usar o seguinte código para fazer essa codificação:
def create_authorization_header(username, password): username_password = f'{ username }:{ password }' return f'Basic { b64encode(username_password.encode()).decode() }'
Por exemplo, se você codificar o nome de usuário 'http_user' e a senha 'qwe123', você obterá a seguinte string codificada em base64: aHR0cF91c2VyOnF3ZTEyMw==.
Cabeçalho da requisição HTTP para enviar SMS a partir do Python Flask
Para enviar as mensagens SMS, você precisa incluir as seguintes linhas como cabeçalhos na requisição HTTP. Observe que incluímos um tipo de conteúdo e um cabeçalho de Autorização.
Content-Type: application/json Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
Requisição HTTP para enviar SMS a partir do Python Flask
Para enviar as mensagens SMS, seu aplicativo Python Flask enviará uma requisição HTTP semelhante à mostrada abaixo. Observe que esta requisição contém uma parte de cabeçalho HTTP, no cabeçalho definimos a pasta da qual queremos baixar as mensagens e a ação. Também enviamos a senha e nome de usuário codificados em Base64 para autenticar a requisição.
GET /api?action=receivemsg&folder=inbox HTTP/1.1 Host: 127.0.0.1:9509 User-Agent: python-requests/2.26.0 Accept-Encoding: gzip, deflate Accept: */* Connection: keep-alive Authorization: Basic aHR0cF91c2VyOnF3ZTEyMw==
Resposta HTTP recebida pelo exemplo de SMS em Python Flask
Quando o SMS Gateway receber esta requisição, ele gerará uma resposta HTTP. A resposta HTTP conterá um código de status, para indicar se a requisição de envio de SMS foi bem-sucedida ou não. Também retornará uma estrutura codificada em JSON para fornecer detalhes úteis sobre o envio da mensagem.
HTTP/1.1 200 OK Transfer-Encoding: chunked Content-Type: application/json; charset=utf8 Last-Modified: Fri, 17 Sep 2021 08:36:07 GMT Server: 10/10.3.124 Microsoft-HTTPAPI/2.0 User-Agent: OZEKI 10.3.124 (www.myozeki.com) Access-Control-Allow-Origin: * Date: Fri, 17 Sep 2021 07:08:11 GMT { "http_code": 200, "response_code": "SUCCESS", "response_msg": "", "data": { "folder": "inbox", "limit": "1000", "data": [ { "message_id": "31bc2fe0-c2a6-4ebe-afcd-6bcd9ea341fb", "from_connection": "admin@localhost", "from_address": "", "from_station": "%", "to_connection": "http_user@localhost", "to_address": "http_user", "to_station": "%", "text": "Hello world 1!", "create_date": "2021-09-17 09:07:14", "valid_until": "2021-09-24 09:07:14", "time_to_send": "2021-09-17 09:07:14", "submit_report_requested": true, "delivery_report_requested": false, "view_report_requested": false, "tags": [] }, { "message_id": "b7b8d592-e182-4e96-a375-b4a6aa73e483", "from_connection": "admin@localhost", "from_address": "", "from_station": "%", "to_connection": "http_user@localhost", "to_address": "http_user", "to_station": "%", "text": "Hello world 2!", "create_date": "2021-09-17 09:07:23", "valid_until": "2021-09-24 09:07:23", "time_to_send": "2021-09-17 09:07:23", "submit_report_requested": true, "delivery_report_requested": false, "view_report_requested": false, "tags": [] }, { "message_id": "b0308970-a3c9-45c4-bf97-14a914a66f57", "from_connection": "admin@localhost", "from_address": "", "from_station": "%", "to_connection": "http_user@localhost", "to_address": "http_user", "to_station": "%", "text": "Hello world 3!", "create_date": "2021-09-17 09:07:33", "valid_until": "2021-09-24 09:07:33", "time_to_send": "2021-09-17 09:07:33", "submit_report_requested": true, "delivery_report_requested": false, "view_report_requested": false, "tags": [] } ] } }
Exemplo de SMS em Python Flask: ReceiveSms.py
Como baixar o projeto ReceiveSMS.py (Tutorial em vídeo)
No vídeo a seguir, você aprenderá como usar o projeto ReceiveSms.py em Python Flask. O vídeo começará com a página de download e o guiará até o painel do editor de código aberto. Você aprenderá como baixar e abrir o arquivo de código. O vídeo tem apenas 54 segundos, mas contém todas as informações necessárias para usar o arquivo de exemplo com sucesso.
O código de exemplo abaixo faz parte da pasta ReceiveSms.py.zip.
No próximo clipe, você verá como pode executar o código ReceiveSms.py em Python. O vídeo começará com o código aberto e o guiará até a aba de eventos com o registro da mensagem enviada. Você verá como executar o código e o que acontece se o código for executado. O vídeo tem menos de 1 minuto, mas contém todas as informações necessárias para executar o projeto.
Conclusão
Este artigo mostrou os passos para receber SMS em uma requisição usando Python Flask.
Com esse conhecimento e as ferramentas fornecidas, você deve ser capaz de alcançar vários clientes com um único código. O Ozeki SMS Gateway tem um papel importante nesse processo, pois esse programa organiza a entrega das mensagens. O Ozeki SMS Gateway trabalha com alta qualidade e desempenho, permitindo que você envie até 1000 SMS por segundo.
Continue seu aprendizado nas páginas de tutorial da Ozeki, onde você pode ler sobre tópicos como
exclusão de SMS em Python Flask.
Agora, a única coisa que você precisa fazer é baixar o Ozeki
SMS Gateway e começar a trabalhar!
More information
- Enviar SMS em Python Flask com a API REST HTTP (exemplo de código)
- Enviar múltiplos SMS em Python Flask com a API REST HTTP (exemplo de código)
- Agendar SMS em Python Flask com a API REST HTTP (exemplo de código)
- Receber SMS em Python Flask com a API REST HTTP (exemplo de código)
- Excluir SMS em Python Flask com a API REST HTTP (exemplo de código)
- Como baixar a última biblioteca de SMS em Python Flask do Github