Skip to main content

PYZDSMS: Biblioteca para enviar SMS en Cuba con los servicios de ZonaDigital

Project description

PYZDSMS: Biblioteca para enviar SMS en Cuba con los servicios de ZonaDigital

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.

Requisitos previos

Para usar pyzdsms necesitas lo siguiente:

  • Python >= 3.5
  • pip
  • Una cuenta de ZonaDigital

Instalación

Para instalar pyzdsms, ejecuta el siguiente comando:

pip install pyzdsms 

Uso

Para enviar un SMS, primero debes importar la biblioteca:

from 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())

Listar SMS

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())

Crear campañas

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.

Obtener un listado de todas las campañas

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())

Contribución

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.

Licencia

pyzdsms está licenciado bajo la GNU General Public License v3.0. Consulta el archivo LICENSE para más detalles.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyzdsms-0.0.1.tar.gz (18.6 kB view details)

Uploaded Source

Built Distribution

pyzdsms-0.0.1-py3-none-any.whl (18.8 kB view details)

Uploaded Python 3

File details

Details for the file pyzdsms-0.0.1.tar.gz.

File metadata

  • Download URL: pyzdsms-0.0.1.tar.gz
  • Upload date:
  • Size: 18.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.12

File hashes

Hashes for pyzdsms-0.0.1.tar.gz
Algorithm Hash digest
SHA256 3e25ad683362d2edca09502de409a1773ed3c0059109153074554e35d39a80d9
MD5 1170ff46f38ff8ed61ffb902cd504c61
BLAKE2b-256 8c32fd6cd40ca6fd145077f65ce58b3633252928d1f3baf6ece527a6da4fc9b7

See more details on using hashes here.

File details

Details for the file pyzdsms-0.0.1-py3-none-any.whl.

File metadata

  • Download URL: pyzdsms-0.0.1-py3-none-any.whl
  • Upload date:
  • Size: 18.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.12

File hashes

Hashes for pyzdsms-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 85a975c39fb597e147a98ef36617d447098f90f9245210e4bfbfc9fd5bdfbcd1
MD5 cf0d755ff57f7fd87fb50afb43afd242
BLAKE2b-256 157f461c7eb4e10def96e86b40f41dcf4c009d64e9a9b5e01b31d70dae5e54a5

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page