pyzdsms es una biblioteca de Python que te permite enviar SMS dentro de Cuba usando la API de ZonaDigital (https://zdsms.cu/). Con pyzdsms puedes crear campañas de marketing, enviar notificaciones, confirmaciones y más, de forma fácil y segura.
Para usar pyzdsms necesitas lo siguiente:
- Python >= 3.5
- pip
- Una cuenta de ZonaDigital
Para instalar pyzdsms, ejecuta el siguiente comando:
pip install pyzdsms
Para enviar un SMS, primero debes importar la biblioteca:
from pyzdsms.pyzdsms import pyzdsms
Luego debes obtener un token de autenticación de ZonaDigital. Puedes usar un token persistente o uno temporal. En este ejemplo usaremos un token persistente que debes guardar en una variable de entorno:
TOKEN_PERSISTENT = os.environ.get("TOKEN_PERSISTENT") # Obtén tu token de ZonaDigital y guárdalo como una variable de entorno
Después debes crear una instancia de pyzdsms con el token:
zd = pyzdsms(TOKEN_PERSISTENT)
Finalmente, puedes enviar el SMS con el método send_sms, indicando el número de destino y el texto del mensaje. El método te devuelve una respuesta con el mensaje y el id del SMS:
number_send = "535*******" # Número de destino
response = zd.send_sms(
number_send,
"Esto es un sms desde pyzdsms" # Texto del mensaje
)
message = response.getMessage() # Mensaje de la respuesta
id = response.getId() # Id del SMS
print("message", message, "id", id) # Imprime el mensaje y el id
Con este código puedes enviar un sms a cualquier persona dentro de Cuba. Para obtener el estado de este SMS puede con el id obtener la información correspondiente:
details = zd.details_sms(id)
print(details.getStatus())
print(details.getText())
print(details.getCreatedAt())
print(details.getRecipient())
print(details.getSmsCount())
print(details.getVia())
Puede listar todos los SMS enviados de una forma muy simple:
all_sms = zd.get_all_sms()
for sms in all_sms:
print(sms.getStatus())
print(sms.getText())
print(sms.getCreatedAt())
print(sms.getRecipient())
print(sms.getSmsCount())
print(sms.getVia())
Si desea obtener la información de forma escalada, puede paginar la obtención:
all_sms, count_items, count_paginated = zd.get_all_sms(page=2)
print("count items", count_items)
print("count paginated", count_paginated)
for sms in all_sms:
print(sms.getStatus())
print(sms.getText())
print(sms.getCreatedAt())
print(sms.getRecipient())
print(sms.getSmsCount())
print(sms.getVia())
Una campaña consiste en el envío masivo de SMS a un listado de Lead o Posibles Clientes que tenga como estrategia de marqueting. La biblioteca brinda de una forma sencilla para crear campañas con este registro de usuarios que usted posea:
campaign = zd.create_campaign()\
.addName("Campaña#12")\
.addRecipients(number_send1)\
.addRecipients(number_send2)\
.setText("Esto es una prueba del envio de una campaña por SMS.")\
.send()
message = campaign.getMessage()
id = campaign.getId()
En el ejemplo suponemos como "number_send1" y "number_send2" como dos números de dicha campaña a los que se le enviará este SMS. Puede también hacerlo de la siguiente forma:
numbers_send = [number_send1, number_send2]
campaign = zd.create_campaign().addName("Campaña#12")
for ns in numbers_send:
campaign.addRecipients(ns)
response = campaign.setText("Esto es una prueba del envio de una campaña por SMS.").send()
message = response.getMessage()
id = response.getId()
En el ejemplo suponemos que tenga un arreglo de números de teléfonos a los cuales desea enviar los SMS.
Para obtener el listado de todas las campañas puede tomar este ejemplo:
campaigns = zd.create_campaign().getAll()
for campaign in campaigns:
print(campaign.getVia())
print(campaign.getId())
print(campaign.getText())
print(campaign.getRecipients())
print(campaign.getSmsCount())
print(campaign.getCreatedAt())
print(campaign.getStatus())
print(campaign.getName())
print(campaign.getDelivered())
print(campaign.getUserId())
Si te interesa contribuir a pyzdsms, puedes hacerlo de las siguientes formas:
- Reportando errores o sugerencias en la sección de issues.
- Haciendo un fork del repositorio y enviando un pull request con tus cambios.
- Mejorando la documentación o los ejemplos.
- Compartiendo el proyecto con otros usuarios que puedan beneficiarse de él.
pyzdsms está licenciado bajo la GNU General Public License v3.0. Consulta el archivo LICENSE para más detalles.