Metadata-Version: 2.1
Name: pyzdsms
Version: 0.0.1
Summary: PYZDSMS: Biblioteca para enviar SMS en Cuba con los servicios de ZonaDigital
Home-page: https://github.com/MoonMagiCreation/pyzdsms
Author: Josué Carballo Baños
Author-email: josuecb@yandex.com
License: GPL 3.0
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)
Requires-Python: >=3.5
Description-Content-Type: text/markdown
License-File: LICENSE

# 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.
