Skip to main content

Descripción general

Esta página es la versión en Laravel del tutorial oficial de bots de AT Protocol. Explica cómo implementar en PHP/Laravel, mediante el paquete laravel-bluesky, un contenido pensado originalmente para TypeScript. En el tutorial oficial se descargan los archivos Lexicon en cada ocasión con el comando lex, pero laravel-bluesky ya incorpora previamente todos los Lexicon desde atproto-lexicon-contracts, así que ese paso no es necesario. Usando los comandos de Artisan y los métodos del trait HasShortHand, puedes realizar prácticamente todas las operaciones.

Requisitos previos

  • Tener instalado el paquete laravel-bluesky
  • Disponer de una cuenta de Bluesky y una app password
Consulta el método de instalación en Laravel Bluesky.

Parte 1: bot básico (publicación)

Crear un comando Artisan

Crea el comando para el bot con php artisan make:command.
Edita el app/Console/Commands/BotPostCommand.php generado.

Ejecución manual

Ejecución automática con programación de tareas

Añade la configuración de ejecución periódica en routes/console.php.
Para activar el scheduler, configura lo siguiente en cron.

Ejecución automática con GitHub Actions

Si no dispones de servidor, también puedes ejecutarlo automáticamente con GitHub Actions.
Registra BLUESKY_IDENTIFIER y BLUESKY_APP_PASSWORD como secrets de GitHub Actions.

Parte 2: bot de respuestas (monitorización de menciones)

Crearemos un bot que responde automáticamente a las menciones. También se incluye un ejemplo que usa IA para generar las respuestas.

Obtener notificaciones y responder a las menciones

Si la raíz del hilo es diferente, obtén la información del hilo con app.bsky.feed.getPostThread y configúralo en root. En la implementación simplificada se toma la publicación padre como raíz.

Programar el sondeo

Generar respuestas usando IA

Combinando el paquete laravel/ai con el driver laravel-amazon-bedrock, puedes generar respuestas con IA según el contenido de la mención.
Crea el agente de IA.
Usa la respuesta de IA desde el comando.
Consulta la configuración de laravel-amazon-bedrock en el driver de Amazon Bedrock.

Parte 3: bot de etiquetas

Es el equivalente al labelAsBot del tutorial oficial. Se aplica una self label al perfil de la cuenta del bot para indicar explícitamente que se trata de una cuenta automatizada.
El etiquetado se ejecuta una sola vez durante la configuración inicial. Se implementa como un comando aparte, independiente de los comandos de las partes 1 y 2.

Crear el comando del bot de etiquetas

Ejecutar

Ejecuta este comando una sola vez durante la configuración inicial del bot. La etiqueta se guarda de forma permanente en el perfil.
!bot es una self label estándar de Bluesky. Se recomienda asignarla siempre en las cuentas de bots.

Sobre otros tutoriales oficiales

El tutorial oficial de AT Protocol incluye varios temas más. A continuación resumimos el estado de compatibilidad con laravel-bluesky.

Feed personalizado

En Feed Generator se explica en detalle cómo implementar un feed generator personalizado con Laravel.

Autenticación OAuth

En Socialite se explica cómo implementar la autenticación OAuth con Laravel Socialite. Es más sencilla que en el tutorial oficial.

Aplicación social (statusphere)

Está publicada una versión Laravel de statusphere en invokable/statusphere. Como se basa en un statusphere anterior que no usa los comandos lex ni tap, hay algunas diferencias respecto al tutorial oficial más reciente.

Enlaces de referencia

Última modificación el 13 de julio de 2026