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
- Registra una aplicación en Azure Portal
- 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 correosMail.ReadWrite: Crear/modificar correosMail.Send: Enviar correosFiles.Read: Leer archivosFiles.ReadWrite: Crear/modificar archivosUser.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
- Fork el repositorio
- Crea una rama (
git checkout -b feature/nueva-caracteristica) - Commit tus cambios (
git commit -m 'Agrega nueva característica') - Push a la rama (
git push origin feature/nueva-caracteristica) - 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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
53fc70c23ab17ede929f5f04c42c7e1995756c4d03a65d15b7163a0b3bdd90b4
|
|
| MD5 |
d1a76192e92d494191bb545ce9a167f2
|
|
| BLAKE2b-256 |
f5e58dd1cc902bed5f8b9d296f91440e251fbab194bf6becd853dd8ae536dcb6
|
File details
Details for the file msgraph_toolkit-0.1.3-py3-none-any.whl.
File metadata
- Download URL: msgraph_toolkit-0.1.3-py3-none-any.whl
- Upload date:
- Size: 25.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c7a3c3cffaadd516a8695059a8066ded98a1bcb447f61c68c24f6b7613960372
|
|
| MD5 |
7ac693e78d6550d1d57afbcbfec11f97
|
|
| BLAKE2b-256 |
4491f9b384d0e09093e4dd758d898be1907fe7e710ad0dc51b0158280f638399
|