Skip to main content

A package for managing Microsoft Graph operations

Project description

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

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

msgraph_toolkit-0.1.3.tar.gz (21.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

msgraph_toolkit-0.1.3-py3-none-any.whl (25.1 kB view details)

Uploaded Python 3

File details

Details for the file msgraph_toolkit-0.1.3.tar.gz.

File metadata

  • Download URL: msgraph_toolkit-0.1.3.tar.gz
  • Upload date:
  • Size: 21.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.1

File hashes

Hashes for msgraph_toolkit-0.1.3.tar.gz
Algorithm Hash digest
SHA256 53fc70c23ab17ede929f5f04c42c7e1995756c4d03a65d15b7163a0b3bdd90b4
MD5 d1a76192e92d494191bb545ce9a167f2
BLAKE2b-256 f5e58dd1cc902bed5f8b9d296f91440e251fbab194bf6becd853dd8ae536dcb6

See more details on using hashes here.

File details

Details for the file msgraph_toolkit-0.1.3-py3-none-any.whl.

File metadata

File hashes

Hashes for msgraph_toolkit-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 c7a3c3cffaadd516a8695059a8066ded98a1bcb447f61c68c24f6b7613960372
MD5 7ac693e78d6550d1d57afbcbfec11f97
BLAKE2b-256 4491f9b384d0e09093e4dd758d898be1907fe7e710ad0dc51b0158280f638399

See more details on using hashes here.

Supported by

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