Skip to main content

Descripción general

El Facade Bluesky 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).
El getFacadeAccessor() del Facade resuelve este binding.

Métodos principales de BlueskyManager

A continuación se listan los métodos principales que define el propio BlueskyManager. 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 trait HasShortHand 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 el StrongRef 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

Con SelfLabels puedes aplicar self labels a toda la cuenta.

Llamar directamente a una API arbitraria

Para métodos que no están en HasShortHand, 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.
Como el registro es 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

Con macro() puedes añadir métodos a BlueskyManager desde la aplicación. Es habitual definirlos dentro de boot() en AppServiceProvider.

Inyectar un Agent personalizado

Con withAgent() 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

Última modificación el 13 de julio de 2026