Descripción general
El FacadeBluesky es una capa fina sobre BlueskyManager. BlueskyManager gestiona varios Agents, y el trait HasShortHand agrupa los atajos de los métodos que se usan con más frecuencia.
Arquitectura
BlueskyServiceProvider registra Factory::class como BlueskyManager con un singleton scoped (una instancia por petición).
getFacadeAccessor() del Facade resuelve este binding.
Métodos principales de BlueskyManager
A continuación se listan los métodos principales que define el propioBlueskyManager. Distinguirlos de los métodos del trait HasShortHand ayuda a entender la estructura interna.
Autenticación
Operaciones del Agent
Cliente HTTP
Utilidades
Trait HasShortHand
El traitHasShortHand envuelve las APIs de bajo nivel del AT Protocol en métodos claros y orientados a PHP. Basta con añadir use HasShortHand; en BlueskyManager para que estos métodos puedan invocarse directamente desde Bluesky::.
HasShortHand se mantiene como un trait independiente para facilitar las pruebas y la personalización. Gracias a este trait, el código de BlueskyManager sigue siendo simple mientras se ofrece un amplio conjunto de atajos de API.Publicaciones y feed
Interacciones
Follow
Perfil y cuenta
Multimedia
Notificaciones
Operaciones sobre records del AT Protocol
Feed generator y labeler
Ejemplos de atajos habituales
Publicar
Responder
Para responder, configura elStrongRef de la publicación padre con Post::build(). HasShortHand no dispone de un método reply() específico; se pasa el objeto Post a post().
Like y repost
Actualizar el perfil
upsertProfile() obtiene el perfil actual y guarda los cambios que se realizan dentro de la clausura. Puedes usar los métodos del objeto Profile para configurar displayName, description, etc.
Configurar self labels
ConSelfLabels puedes aplicar self labels a toda la cuenta.
Llamar directamente a una API arbitraria
Para métodos que no están enHasShortHand, usa send() o client().
Diferencias entre usar el Facade y usarlo directamente
Bluesky::post() y app(Factory::class)->post() son operaciones sobre la misma instancia de BlueskyManager.
scoped, dentro de una misma petición se conserva el estado de la sesión tras login().
Conditionable y Macroable
BlueskyManager también usa los traits Conditionable y Macroable.
Conditionable: when() / unless()
Macroable: añadir métodos personalizados
Conmacro() puedes añadir métodos a BlueskyManager desde la aplicación. Es habitual definirlos dentro de boot() en AppServiceProvider.
Inyectar un Agent personalizado
ConwithAgent() puedes asignar directamente cualquier implementación de Agent.
Con la autenticación habitual (
login() / withToken()) el agente se configura automáticamente, por lo que withAgent() suele usarse sobre todo en pruebas.Enlaces de referencia
- Comparativa de métodos de autenticación — detalles de App Password y OAuth
- Basic client — ejemplos de operaciones de API tras autenticarse
- Testing — métodos de prueba usando Fake
- Source: src/BlueskyManager.php
- Source: src/HasShortHand.php