Descripción general
Feed Generator es el mecanismo de “feeds algorítmicos” que se ejecuta sobre Bluesky. Permite publicar feeds propios adaptados a palabras clave o condiciones de usuario. Conlaravel-bluesky puedes implementar fácilmente un Feed Generator dentro de una aplicación Laravel.
Tutorial oficial: Crear un feed personalizado
Starter kit oficial: bluesky-social/feed-generator
Registro del algoritmo del FeedGenerator
La forma más sencilla es registrar el algoritmo como clausura enAppServiceProvider::boot().
name utiliza una cadena URL-safe.
El valor de retorno del algoritmo es un array que contiene cursor y feed.
http://localhost/xrpc/app.bsky.feed.getFeedSkeleton?feed=at://did:web:example.com/app.bsky.feed.generator/artisanhttp://localhost/xrpc/app.bsky.feed.describeFeedGeneratorhttp://localhost/.well-known/did.json- El Service DID se genera automáticamente a partir de la URL actual (por ejemplo,
did:web:example.com).
Publicar el feed (crear un comando)
Con solo implementar el FeedGenerator dentro de la aplicación Laravel no se publica en Bluesky. Crea un comando que invoquepublishFeedGenerator y ejecútalo.
1
Genera el comando
2
Implementa el comando
3
Ejecuta el comando
publishFeedGenerator solo actualiza información, puedes ejecutarlo tantas veces como quieras.Crear varios FeedGenerator
Basta con cambiar elname y llamar a register varias veces para crear múltiples feeds.
publishFeedGenerator.
Separar el algoritmo en una clase
Al usar una clase independiente en lugar de una clausura, resulta más fácil organizar el código. Crea una clase invocable que implemente el contratoFeedGeneratorAlgorithm y regístrala en AppServiceProvider.
Autenticación
La funcionalidad de autenticación del starter kit oficial viene activada por defecto. Para desactivarla, pasa avalidateAuthUsing una clausura que simplemente devuelva el DID del usuario.
Uso avanzado
Si usas comandos Artisan y programación de tareas para guardar las publicaciones en la base de datos y en el algoritmo solo consultas la BD, puedes lograr un feed rápido sin llamadas a la API.Source: docs/feed-generator.md