Skip to main content

Panoramica

Questa pagina è la versione Laravel del tutorial ufficiale per bot di AT Protocol. Spiega come implementare in PHP/Laravel, tramite il pacchetto laravel-bluesky, i contenuti pensati per TypeScript. Nel tutorial ufficiale il file Lexicon viene scaricato di volta in volta con il comando lex, ma in laravel-bluesky tutti i Lexicon sono già inclusi in anticipo tramite atproto-lexicon-contracts, quindi questo passaggio non è necessario. Con i comandi Artisan e i metodi del trait HasShortHand puoi realizzare praticamente tutte le operazioni.

Prerequisiti

  • Il pacchetto laravel-bluesky è già installato
  • Devi avere un account Bluesky e una app password
Per le istruzioni di installazione consulta Laravel Bluesky.

Parte 1: bot base (post)

Creare un comando Artisan

Crea un comando per il bot con php artisan make:command.
Modifica il file generato app/Console/Commands/BotPostCommand.php.

Esecuzione manuale

Esecuzione automatica con il task scheduler

Aggiungi le impostazioni per l’esecuzione periodica in routes/console.php.
Per abilitare lo scheduler, imposta il seguente cron.

Esecuzione automatica con GitHub Actions

Se non hai un server, puoi comunque eseguirlo automaticamente con GitHub Actions.
Registra BLUESKY_IDENTIFIER e BLUESKY_APP_PASSWORD nei secret di GitHub Actions.

Parte 2: bot di risposta (monitoraggio delle menzioni)

Creiamo un bot che risponde automaticamente alle menzioni. Vediamo anche un esempio in cui la risposta viene generata da un’AI.

Recuperare le notifiche e rispondere alle menzioni

Se il root del thread è diverso, recupera le informazioni del thread con app.bsky.feed.getPostThread e impostalo come root. In questa implementazione semplificata, il post padre viene usato come root.

Schedulare il polling

Generare la risposta con l’AI

Combinando il pacchetto laravel/ai con il driver laravel-amazon-bedrock, puoi generare risposte AI adattate al contenuto della menzione.
Crea un agente AI.
Usa le risposte AI nel comando.
Per la configurazione di laravel-amazon-bedrock consulta il driver Amazon Bedrock.

Parte 3: bot per label

È la funzionalità equivalente a labelAsBot del tutorial ufficiale. Applica una self-label al profilo dell’account bot per dichiarare esplicitamente che si tratta di un account automatizzato.
L’applicazione della label va eseguita una sola volta, in fase di configurazione iniziale. Va implementata come comando separato dai comandi della Parte 1 e 2.

Creare il comando del bot per label

Esecuzione

Esegui questo comando una sola volta, durante la configurazione iniziale del bot. La label viene salvata in modo persistente nel profilo.
!bot è una self-label standard di Bluesky. Se ne consiglia sempre l’impostazione per gli account bot.

Sugli altri tutorial ufficiali

Il tutorial ufficiale di AT Protocol tratta anche altri argomenti. Ecco lo stato del supporto in laravel-bluesky.

Feed personalizzati

In Feed Generator trovi la spiegazione dettagliata su come implementare un feed generator personalizzato con Laravel.

Autenticazione OAuth

In Socialite trovi la spiegazione su come implementare l’autenticazione OAuth con Laravel Socialite. È più semplice da implementare rispetto al tutorial ufficiale.

App sociale (statusphere)

La versione Laravel di statusphere è pubblicata come invokable/statusphere. È basata su una versione più vecchia di statusphere che non usava i comandi lex o tap, quindi presenta lievi differenze rispetto al tutorial ufficiale più recente.
Ultima modifica il 13 luglio 2026