🌐 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.
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)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| msgraph_toolkit-0.1.3.tar.gz | 21.8 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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.