Download the PHP package tepuilabs/mini-meli without Composer
On this page you can find all versions of the php package tepuilabs/mini-meli. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download tepuilabs/mini-meli
More information about tepuilabs/mini-meli
Files in tepuilabs/mini-meli
Package mini-meli
Short Description Genera access token para poder tener acceso a los recursos disponibles de Mercado libre
License MIT
Homepage https://github.com/mini-meli/mini-meli
Informations about the package mini-meli
mini-meli
Librería completa para Mercado Libre con OAuth 2.0 PKCE, refresh tokens y gestión de aplicaciones. Implementa todas las mejores prácticas de seguridad y funcionalidades de la API oficial.
🚀 Características
- ✅ OAuth 2.0 PKCE - Autenticación segura con Proof Key for Code Exchange
- ✅ Refresh Tokens - Renovación automática de tokens con offline_access
- ✅ Multi-Site Support - Soporte para todos los sitios de Mercado Libre
- ✅ App Management - Gestión completa de aplicaciones y permisos
- ✅ Security First - Validación robusta y protección CSRF
- ✅ PHP 8.3+ - Aprovecha las últimas funcionalidades del lenguaje
- ✅ Type Safety - Tipado estricto y union types
- ✅ Readonly Properties - Inmutabilidad donde sea apropiado
- ✅ Match Expressions - Lógica más clara y eficiente
- ✅ Named Arguments - Mejor legibilidad del código
- ✅ First-class Callable Syntax - Sintaxis moderna para callbacks
- ✅ Improved Error Handling - Manejo de errores más específico
- ✅ Backward Compatibility - Compatible con versiones anteriores
📦 Instalación
⚙️ Configuración
Variables de Entorno
Agrega en tu archivo de configuración:
[!NOTE] Estos datos los debes configurar en Mercado Libre cuando crees una aplicación. Solo necesitas el client_id y client_secret.
🔐 Uso
1. Autenticación OAuth 2.0 PKCE
2. Intercambio de Código por Token
3. Refresh Tokens
4. Llamadas a la API
5. Gestión de Aplicaciones
🌍 Sitios Soportados
La librería soporta todos los sitios de Mercado Libre:
🔑 Scopes y Permisos
🛡️ Seguridad
PKCE (Proof Key for Code Exchange)
La librería implementa PKCE para prevenir ataques de interceptación de código:
State Protection
Protección CSRF con parámetros state aleatorios:
Validación Robusta
📚 API Reference
MeliServices
Métodos Estáticos
fromArray(array $params): self
- Crear desde arrayfromEnvironment(): self
- Crear desde variables de entorno
Métodos de Instancia
generateAccessToken(): MeliResponse
- Generar tokenrefreshAccessToken(string $refreshToken): MeliResponse
- Renovar tokengetAuthorizationUrl(string $site, array $params = []): string
- Generar URL de autorizaciónget(string $endpoint, string $accessToken): array
- GET requestpost(string $endpoint, string $accessToken, array $data = []): array
- POST requestput(string $endpoint, string $accessToken, array $data = []): array
- PUT requestdelete(string $endpoint, string $accessToken): array
- DELETE requestgetApplicationDetails(string $accessToken, string $appId): array
- Detalles de appgetUserApplications(string $accessToken, string $userId): array
- Apps del usuariogetApplicationGrants(string $accessToken, string $appId): array
- Usuarios conectadosrevokeUserAuthorization(string $accessToken, string $userId, string $appId): array
- Revocar autorización
MeliConfig
Métodos Estáticos
fromArray(array $params): self
- Crear desde arrayfromEnvironment(): self
- Crear desde variables de entornoforAuthorization(...): self
- Crear para URLs de autorizacióngeneratePkce(): array
- Generar PKCEgenerateState(): string
- Generar state
Métodos de Instancia
toArray(): array
- Convertir a arrayisValid(): bool
- Verificar si es válidohasPkce(): bool
- Verificar si tiene PKCEhasState(): bool
- Verificar si tiene statehasRefreshToken(): bool
- Verificar si tiene refresh tokenisForTokenExchange(): bool
- Verificar si es para intercambiogetScopesString(): string
- Obtener scopes como stringhasOfflineAccess(): bool
- Verificar offline accesshasReadPermission(): bool
- Verificar permiso de lecturahasWritePermission(): bool
- Verificar permiso de escritura
MeliResponse
Propiedades
data: array
- Datos de la respuestastatusCode: int
- Código de estado HTTP
Métodos
getAccessToken(): ?string
- Obtener access tokengetRefreshToken(): ?string
- Obtener refresh tokengetTokenType(): ?string
- Obtener tipo de tokengetExpiresIn(): ?int
- Obtener tiempo de expiracióngetScope(): ?string
- Obtener scopegetUserId(): ?int
- Obtener ID de usuariohasAccessToken(): bool
- Verificar si tiene access tokenhasRefreshToken(): bool
- Verificar si tiene refresh tokentoArray(): array
- Convertir a arraytoJson(): string
- Convertir a JSONisSuccessful(): bool
- Verificar si la respuesta es exitosagetErrorMessage(): ?string
- Obtener mensaje de errorgetErrorDescription(): ?string
- Obtener descripción del error
MeliScopes
Constantes
READ
- Permiso de lecturaWRITE
- Permiso de escrituraOFFLINE_ACCESS
- Permiso offline (refresh tokens)
Métodos Estáticos
getAll(): array
- Obtener todos los scopesgetDefault(): array
- Obtener scopes por defectogetOfflineAccess(): array
- Obtener scopes con offline accessisValid(string $scope): bool
- Validar scopevalidateScopes(array $scopes): bool
- Validar múltiples scopestoString(array $scopes): string
- Convertir a stringtoArray(string $scopes): array
- Convertir a arrayhasOfflineAccess(array|string $scopes): bool
- Verificar offline accesshasRead(array|string $scopes): bool
- Verificar lecturahasWrite(array|string $scopes): bool
- Verificar escritura
MeliSites
Constantes
MLA
- ArgentinaMLB
- BrasilMLM
- MéxicoMLC
- ChileMCO
- ColombiaMPE
- PerúMLU
- UruguayMLV
- Venezuela
Métodos Estáticos
getAll(): array
- Obtener todos los sitiosgetSite(string $siteId): ?array
- Obtener información del sitiogetDomain(string $siteId): string
- Obtener dominiogetName(string $siteId): string
- Obtener nombregetFlag(string $siteId): string
- Obtener banderaisValid(string $siteId): bool
- Validar sitiogetAuthorizationUrl(string $siteId): string
- Obtener URL de autorizacióngetApiUrl(): string
- Obtener URL base de la APIgetOAuthTokenEndpoint(): string
- Obtener endpoint de tokens
🚨 Manejo de Errores
La librería incluye manejo de errores específico:
Tipos de Error
- 400 - Solicitud inválida
- 401 - Credenciales inválidas
- 403 - Acceso denegado
- 404 - Endpoint no encontrado
- 429 - Demasiadas solicitudes
- 5xx - Error del servidor
Errores Específicos de OAuth
- invalid_client - Client ID o Secret inválidos
- invalid_grant - Código o refresh token inválido/expirado
- invalid_scope - Scope inválido
- invalid_request - Parámetros faltantes o inválidos
- unsupported_grant_type - Grant type no soportado
- forbidden - Acceso denegado
- local_rate_limited - Demasiadas solicitudes
- unauthorized_client - Cliente no autorizado
- unauthorized_application - Aplicación bloqueada
🧪 Testing
📝 Ejemplo Completo
🤝 Contribuir
- Fork el proyecto
- Crea una rama para tu feature (
git checkout -b feature/AmazingFeature
) - Commit tus cambios (
git commit -m 'Add some AmazingFeature'
) - Push a la rama (
git push origin feature/AmazingFeature
) - Abre un Pull Request
📄 Licencia
Este proyecto está bajo la Licencia MIT. Ver el archivo LICENSE.md para más detalles.