-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmain.py
More file actions
66 lines (51 loc) · 1.91 KB
/
Copy pathmain.py
File metadata and controls
66 lines (51 loc) · 1.91 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
import os
import requests
from dotenv import load_dotenv
from supabase import create_client, Client
load_dotenv()
SUPABASE_URL = os.getenv("SUPABASE_URL")
SUPABASE_KEY = os.getenv("SUPABASE_KEY")
ZAPI_INSTANCE_ID = os.getenv("ZAPI_INSTANCE_ID")
ZAPI_INSTANCE_TOKEN = os.getenv("ZAPI_INSTANCE_TOKEN")
ZAPI_CLIENT_TOKEN = os.getenv("ZAPI_CLIENT_TOKEN")
supabase: Client = create_client(SUPABASE_URL, SUPABASE_KEY)
def buscar_contatos():
try:
print("Iniciando a busca de contatos no banco de dados...")
resposta = supabase.table("contatos").select("*").execute()
contatos = resposta.data
print(f"Sucesso! Encontramos {len(contatos)} contato(s).")
return contatos
except Exception as erro:
print(f"Ocorreu um erro ao buscar os contatos: {erro}")
return []
def enviar_mensagem(telefone, nome):
url = f"https://api.z-api.io/instances/{ZAPI_INSTANCE_ID}/token/{ZAPI_INSTANCE_TOKEN}/send-text"
headers = {
"Client-Token": ZAPI_CLIENT_TOKEN,
"Content-Type": "application/json"
}
mensagem = f"Olá, {nome}, tudo bem com você?"
payload = {
"phone": telefone,
"message": mensagem
}
try:
resposta = requests.post(url, headers=headers, json=payload)
if resposta.status_code == 200:
print(f"Mensagem enviada para: {nome}")
else:
print(f"Erro ao enviar para {nome}. Detalhes: {resposta.text}")
except Exception as erro:
print(f"Erro de conexao com a API: {erro}")
if __name__ == "__main__":
lista_de_contatos = buscar_contatos()
if lista_de_contatos:
print("Iniciando envios...")
for contato in lista_de_contatos:
telefone = contato["telefone"]
nome = contato["nome_contato"]
enviar_mensagem(telefone, nome)
print("Processo finalizado.")
else:
print("Nenhum contato encontrado para envio.")