Panoramica
Il Feed Generator è il meccanismo per i “feed algoritmici” che opera su Bluesky. Puoi pubblicare feed personalizzati basati su parole chiave o condizioni utente specifiche. Conlaravel-bluesky puoi implementare facilmente un Feed Generator in un’applicazione Laravel.
Tutorial ufficiale: Creazione di feed personalizzati
Starter kit ufficiale: bluesky-social/feed-generator
Registrazione dell’algoritmo FeedGenerator
L’uso più semplice consiste nel registrare l’algoritmo come closure inAppServiceProvider::boot().
name utilizza una stringa URL-safe.
Il valore di ritorno dell’algoritmo è un array che contiene cursor e 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- Il Service DID viene generato automaticamente dall’URL attuale (es.:
did:web:example.com).
Pubblicazione del feed (creazione del comando)
Implementare il FeedGenerator nell’app Laravel non basta a pubblicarlo su Bluesky. Crea ed esegui un comando che invochipublishFeedGenerator.
1
Genera il comando
2
Implementa il comando
3
Esegui il comando
publishFeedGenerator si limita ad aggiornare le informazioni, quindi puoi eseguirlo più volte senza problemi.Creazione di più FeedGenerator
Puoi creare più feed semplicemente chiamandoregister più volte cambiando name.
publishFeedGenerator più volte.
Separazione dell’algoritmo in una classe
Usare una classe indipendente al posto di una closure aiuta a organizzare meglio il codice. Crea una classe callable che implementi il contractFeedGeneratorAlgorithm e registrala in AppServiceProvider.
Autenticazione
La funzione di autenticazione dello starter kit ufficiale è abilitata per impostazione predefinita. Per disabilitarla, passa avalidateAuthUsing una closure che restituisce semplicemente il DID dell’utente.
Utilizzo avanzato
Se usi un comando Artisan e il task scheduler per salvare i post in un database, e nell’algoritmo li recuperi soltanto dal DB, puoi realizzare un feed veloce senza chiamate API.Source: docs/feed-generator.md