Skip to main content

Overzicht

Deze pagina is de Laravel-versie van de officiële AT Protocol-bottutorial. We laten zien hoe je de op TypeScript gerichte inhoud implementeert in PHP/Laravel met het laravel-bluesky-pakket. In de officiële tutorial download je met het lex-commando telkens Lexicon-bestanden, maar laravel-bluesky heeft alle Lexicons al vooraf opgenomen via atproto-lexicon-contracts, dus die stap is niet nodig. Met Artisan-commando’s en de methodes van de HasShortHand-trait kun je vrijwel alle operaties uitvoeren.

Vereisten

  • Het laravel-bluesky-pakket is geïnstalleerd
  • Je hebt een Bluesky-account en een app password klaarstaan
Zie Laravel Bluesky voor de installatie-instructies.

Deel 1: basisbot (posten)

Een Artisan-commando maken

Maak met php artisan make:command een commando voor de bot.
Bewerk het gegenereerde bestand app/Console/Commands/BotPostCommand.php.

Handmatig uitvoeren

Automatisch uitvoeren via taakplanning

Voeg de configuratie voor periodieke uitvoering toe aan routes/console.php.
Om de scheduler te activeren stel je het volgende in via cron.

Automatisch uitvoeren met GitHub Actions

Heb je geen server, dan kun je ook automatisch uitvoeren via GitHub Actions.
Registreer BLUESKY_IDENTIFIER en BLUESKY_APP_PASSWORD als secrets in GitHub Actions.

Deel 2: replybot (mentions monitoren)

We maken een bot die automatisch reageert op mentions. We laten ook een voorbeeld zien waarbij AI de reply genereert.

Notificaties ophalen en op mentions reageren

Als de root van de thread afwijkt, haal dan met app.bsky.feed.getPostThread de threadinformatie op en stel die in als root. In deze eenvoudige implementatie behandelen we de bovenliggende post als root.

Polling inplannen

Replies genereren met AI

Door het laravel/ai-pakket te combineren met de laravel-amazon-bedrock-driver kun je AI-replies genereren die zijn afgestemd op de inhoud van de mention.
Maak een AI-agent.
Gebruik de AI-reply in het commando.
Zie Amazon Bedrock-driver voor de configuratie van laravel-amazon-bedrock.

Deel 3: labelbot

Dit komt overeen met labelAsBot uit de officiële tutorial. We kennen een zelflabel toe aan het profiel van het botaccount om duidelijk te maken dat het een geautomatiseerd account is.
Het labelen voer je één keer uit bij de eerste setup. We implementeren dit als een apart commando, onafhankelijk van de commando’s uit deel 1 en 2.

Het labelbotcommando maken

Uitvoeren

Voer dit commando slechts één keer uit bij de eerste setup van de bot. Het label wordt permanent opgeslagen in het profiel.
!bot is een standaard zelflabel van Bluesky. Het wordt sterk aanbevolen om dit altijd in te stellen voor botaccounts.

Over de andere officiële tutorials

De officiële AT Protocol-tutorials behandelen nog een aantal andere onderwerpen. Hier vind je een overzicht van de ondersteuning in laravel-bluesky.

Custom feeds

In Feed Generator wordt uitgebreid uitgelegd hoe je een custom feedgenerator implementeert met Laravel.

OAuth-authenticatie

In Socialite wordt uitgelegd hoe je OAuth-authenticatie implementeert met Laravel Socialite. Dat is eenvoudiger dan in de officiële tutorial.

Sociale app (statusphere)

Er is een Laravel-versie van statusphere gepubliceerd als invokable/statusphere. Omdat deze gebaseerd is op een oudere statusphere die de commando’s lex en tap niet gebruikt, wijkt hij op enkele punten af van de nieuwste officiële tutorial.

Referenties

Laatst gewijzigd op 6 september 2026