60 lines
2.1 KiB
Python
60 lines
2.1 KiB
Python
from flask import Flask, request, jsonify
|
|
from data_handler import extract_message_data
|
|
import requests
|
|
import gerentes_erp as gerp
|
|
import login as lg
|
|
|
|
# URL do endpoint
|
|
url = "http://localhost:8081/message/sendText/Consultme"
|
|
|
|
# Cabeçalhos com token de autenticação
|
|
headers = {
|
|
'apikey': "429683C4C977415CAAFCCE10F7D57E11", # Substitua SEU_TOKEN_AQUI pelo token correto
|
|
"Content-Type": "application/json"
|
|
}
|
|
|
|
|
|
app = Flask(__name__)
|
|
|
|
@app.route('/webhook', methods=['POST'])
|
|
def receive_message():
|
|
try:
|
|
# Recebe os dados da requisição como JSON
|
|
data = request.json
|
|
|
|
# Verificar se a mensagem foi enviada pelo próprio bot (fromMe == True)
|
|
if data['data']['key'].get('fromMe', False):
|
|
print("Mensagem enviada pelo bot, ignorando.")
|
|
return jsonify({"status": "ignored"}), 200
|
|
|
|
# Extrair as informações usando a função importada
|
|
number, name, message, resposta = extract_message_data(data)
|
|
|
|
# Log das informações extraídas
|
|
print(f"Número: {number}, Nome: {name}, Mensagem: {message}")
|
|
# Responder apenas se a mensagem foi enviada pelo usuário
|
|
if number.startswith("5582") and len(number) == 12:
|
|
number = number[:4] + "9" + number[4:]
|
|
|
|
# JSON de resposta a ser enviado para a Evolution API
|
|
response_data = {
|
|
"number": str(number),
|
|
"text": resposta
|
|
}
|
|
response = requests.post(url, json=response_data, headers=headers)
|
|
print("Status Code:", response.status_code)
|
|
print("Response Body:", response.text)
|
|
|
|
# Retorna a resposta confirmando o recebimento
|
|
return jsonify({"status": "received", "number": number, "name": name, "message": message, "resposta": resposta}), 200
|
|
|
|
except ValueError as e:
|
|
print("Erro ao processar a mensagem:", e)
|
|
return jsonify({"status": "error", "message": str(e)}), 400
|
|
except Exception as e:
|
|
print("Erro inesperado:", e)
|
|
return jsonify({"status": "error", "message": "Erro inesperado"}), 500
|
|
|
|
if __name__ == '__main__':
|
|
app.run(port=5000, debug=True)
|