Skip to main content

🌐 Microsoft Graph Toolkit

Cliente Python para interactuar con Microsoft Graph API de forma sencilla y eficiente.

✨ Características

  • 🔄 Soporte para operaciones síncronas y asíncronas
  • 📨 Gestión de correos y archivos adjuntos
  • 💾 Manejo de OneDrive y SharePoint
  • 👥 Administración de usuarios
  • 🔐 Autenticación mediante client credentials flow
  • 📝 Logging integrado
  • ⚡ Cliente HTTP moderno con httpx

🚀 Instalación

pip install msgraph-toolkit

🛠️ Configuración

  1. Registra una aplicación en Azure Portal
  2. Configura las variables de entorno:
CLIENT_ID="tu-client-id"
CLIENT_SECRET="tu-client-secret"
TENANT_ID="tu-tenant-id"

O pasa las credenciales directamente al inicializar el cliente:

from msgraph_toolkit import MsGraph

client = MsGraph(
    client_id="tu-client-id",
    client_secret="tu-client-secret",
    tenant_id="tu-tenant-id"
)

📚 Uso

Cliente Síncrono

from msgraph_toolkit import MsGraph

# Inicializar cliente
client = MsGraph()

# Listar usuarios
users = client.users.list_users(
    select="displayName,mail",
    filter="startsWith(displayName,'A')"
)

# Obtener drives
drives = client.drives.list_drives(user_id="user@domain.com")

Cliente Asíncrono

from msgraph_toolkit import AsyncMsGraph
import asyncio

async def main():
    # Inicializar cliente
    client = AsyncMsGraph()
    
    # Listar mensajes
    messages = await client.mails.list_messages(
        select="subject,receivedDateTime",
        top=10
    )
    
    # Crear carpeta en OneDrive
    folder = await client.drives.create_folder(
        name="Nueva Carpeta",
        user_id="user@domain.com"
    )

asyncio.run(main())

📦 Módulos

📧 Mails

Gestión de correos electrónicos:

# Listar mensajes
messages = client.mails.list_messages(
    select="subject,from,receivedDateTime",
    filter="receivedDateTime ge 2024-01-01",
    top=50
)

# Crear y enviar mensaje
message = client.mails.create_message(
    subject="Asunto",
    body="Contenido del mensaje",
    to_recipients=["user@domain.com"],
    body_type="HTML"
)
client.mails.send_message(message['id'])

# Adjuntar archivo
client.mails.add_attachment(
    message_id=message['id'],
    file_path="documento.pdf"
)

💾 Drives

Operaciones con OneDrive y SharePoint:

# Listar archivos
items = client.drives.list_items(
    user_id="user@domain.com",
    select="name,size,lastModifiedDateTime"
)

# Crear carpeta
folder = client.drives.create_folder(
    name="Nueva Carpeta",
    user_id="user@domain.com"
)

# Descargar archivo
content = client.drives.download_content(
    item_id="item-id",
    user_id="user@domain.com"
)

👥 Users

Gestión de usuarios:

# Listar usuarios
users = client.users.list_users(
    select="displayName,mail,jobTitle",
    filter="accountEnabled eq true"
)

# Obtener usuario específico
user = client.users.get_user(
    user_id="user@domain.com",
    select="displayName,mail,department"
)

🔑 Permisos

Los permisos requeridos dependen de las operaciones:

  • Mail.Read: Leer correos
  • Mail.ReadWrite: Crear/modificar correos
  • Mail.Send: Enviar correos
  • Files.Read: Leer archivos
  • Files.ReadWrite: Crear/modificar archivos
  • User.Read.All: Leer usuarios

⚠️ Manejo de Errores

La librería incluye manejo de errores específicos:

try:
    messages = client.mails.list_messages()
except PermissionError:
    print("No tiene los permisos necesarios")
except ValueError:
    print("Parámetros inválidos")
except Exception as e:
    print(f"Error: {str(e)}")

📝 Logging

La librería utiliza logging integrado:

from msgraph_toolkit.core.log import Log

logger = Log(__name__)
logger.setLevel("DEBUG")

🤝 Contribuir

  1. Fork el repositorio
  2. Crea una rama (git checkout -b feature/nueva-caracteristica)
  3. Commit tus cambios (git commit -m 'Agrega nueva característica')
  4. Push a la rama (git push origin feature/nueva-caracteristica)
  5. Abre un Pull Request

📄 Licencia

Este proyecto está bajo la Licencia MIT. Ver el archivo LICENSE para más detalles.

Metadata

Release files for msgraph-toolkit 0.1.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for msgraph-toolkit 0.1.3
File Size Uploaded Provenance
msgraph_toolkit-0.1.3.tar.gz 21.8 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for msgraph-toolkit 0.1.3
File Interpreter ABI Platform
msgraph_toolkit-0.1.3-py3-none-any.whl Python 3 none any Details

Total release size: 46.9 kB

Release files / msgraph_toolkit-0.1.3.tar.gz

Download URL msgraph_toolkit-0.1.3.tar.gz
Size 21.8 kB
Tags Source
SHA-256 checksum
How to use checksums
53fc70c23ab17ede929f5f04c42c7e1995756c4d03a65d15b7163a0b3bdd90b4
BLAKE2b-256 checksum
How to use checksums
f5e58dd1cc902bed5f8b9d296f91440e251fbab194bf6becd853dd8ae536dcb6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.1

Release files / msgraph_toolkit-0.1.3-py3-none-any.whl

Download URL msgraph_toolkit-0.1.3-py3-none-any.whl
Size 25.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c7a3c3cffaadd516a8695059a8066ded98a1bcb447f61c68c24f6b7613960372
BLAKE2b-256 checksum
How to use checksums
4491f9b384d0e09093e4dd758d898be1907fe7e710ad0dc51b0158280f638399
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.1

Security for msgraph-toolkit 0.1.3

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page