Overzicht
Een Feed Generator is het mechanisme achter “algoritmische feeds” op Bluesky. Je kunt eigen feeds publiceren op basis van bijvoorbeeld specifieke keywords of gebruikerscriteria. Metlaravel-bluesky implementeer je eenvoudig een Feed Generator in je Laravel-applicatie.
Officiële tutorial: Custom feeds maken
Officiële starter kit: bluesky-social/feed-generator
Een FeedGenerator-algoritme registreren
De eenvoudigste aanpak is om het algoritme als closure te registreren inAppServiceProvider::boot().
name een URL-veilige string.
De returnwaarde van het algoritme is een array met cursor en 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- De Service DID wordt automatisch gegenereerd op basis van de huidige URL (bijvoorbeeld
did:web:example.com).
De feed publiceren (een command maken)
Alleen een FeedGenerator implementeren in je Laravel-app is niet genoeg om deze op Bluesky te publiceren. Maak een command datpublishFeedGenerator aanroept en voer het uit.
1
Het command genereren
2
Het command implementeren
3
Het command uitvoeren
publishFeedGenerator werkt alleen informatie bij, dus je kunt het zo vaak uitvoeren als je wilt.Meerdere FeedGenerators maken
Je maakt meerdere feeds door simpelwegregister meerdere keren aan te roepen met een andere name.
publishFeedGenerator meerdere keren aan.
Het algoritme in een aparte klasse
Door in plaats van een closure een aparte klasse te gebruiken, houd je je code beter georganiseerd. Maak een callable klasse die hetFeedGeneratorAlgorithm-contract implementeert en registreer deze in de AppServiceProvider.
Authenticatie
De authenticatiefunctionaliteit van de officiële starter kit is standaard ingeschakeld. Om deze uit te schakelen geef je aanvalidateAuthUsing een closure door die simpelweg de gebruikers-DID teruggeeft.
Geavanceerd gebruik
Door met een Artisan-command en de task scheduler posts in een database op te slaan en in het algoritme alleen uit de database te lezen, krijg je een snelle feed zonder API-aanroepen.Source: docs/feed-generator.md