Skip to main content

Überblick

Die Facade Bluesky ist ein dünner Wrapper um BlueskyManager. BlueskyManager verwaltet mehrere Agents, und der Trait HasShortHand bündelt Shortcuts für die am häufigsten verwendeten Methoden.

Architektur

Der BlueskyServiceProvider registriert Factory::class als BlueskyManager als Scoped Singleton (eine Instanz pro Request).
Der getFacadeAccessor() der Facade löst dieses Binding auf.

Kernmethoden des BlueskyManager

Die vom BlueskyManager selbst definierten Kernmethoden sind die folgenden. Es hilft beim Verständnis der internen Struktur, sie klar von den Methoden des Traits HasShortHand abzugrenzen.

Authentifizierung

Agent-Operationen

HTTP-Client

Utilities

Trait HasShortHand

Der Trait HasShortHand verpackt Low-Level-APIs des AT Protocols in verständliche, PHP-freundliche Methoden. Es genügt, im BlueskyManager use HasShortHand; einzufügen, dann sind diese Methoden direkt über Bluesky:: aufrufbar.
Der Grund, HasShortHand als eigenständigen Trait zu führen, liegt in der einfachen Testbarkeit und Anpassbarkeit. So bleibt der Code des BlueskyManager schlank, während zahlreiche API-Shortcuts angeboten werden.

Posts und Feed

Engagement

Folgen

Profil und Account

Medien

Benachrichtigungen

AT-Protocol-Record-Operationen

Feed-Generator und Labeler

Beispiele für häufig verwendete Shortcuts

Post erstellen

Antworten

Für eine Antwort setzen Sie in Post::build() den StrongRef des übergeordneten Posts. HasShortHand besitzt keine spezielle reply()-Methode – übergeben Sie post() stattdessen ein Post-Objekt.

Likes und Reposts

Profil aktualisieren

upsertProfile() lädt das aktuelle Profil und speichert die in der Closure vorgenommenen Änderungen. Über die Methoden des Profile-Objekts lassen sich unter anderem displayName und description setzen.

Self-Labels setzen

Mit SelfLabels können Sie Self-Labels für den gesamten Account setzen.

Beliebige API direkt aufrufen

Für Methoden, die nicht in HasShortHand enthalten sind, verwenden Sie send() oder client().

Unterschied zwischen Nutzung über die Facade und direkter Nutzung

Bluesky::post() und app(Factory::class)->post() sind Operationen auf derselben BlueskyManager-Instanz.
Durch die scoped-Registrierung bleibt der nach login() bestehende Session-Zustand innerhalb eines Requests erhalten.

Conditionable und Macroable

BlueskyManager verwendet zusätzlich die Traits Conditionable und Macroable.

Conditionable: when() / unless()

Macroable: Eigene Methoden hinzufügen

Mit macro() können Sie aus der Anwendung Methoden zum BlueskyManager hinzufügen. Üblicherweise definiert man sie in der boot()-Methode des AppServiceProvider.

Eigenen Agent einsetzen

Über withAgent() können Sie eine beliebige Agent-Implementierung direkt einsetzen.
Da bei der üblichen Authentifizierung (login() / withToken()) der Agent automatisch gesetzt wird, ist withAgent() vor allem beim Testen relevant.
Zuletzt geändert am 13. Juli 2026