概览
Feed Generator 是运行在 Bluesky 上的“算法 feed”机制。你可以公开根据特定关键词或用户条件定制的 feed。使用laravel-bluesky 可以在 Laravel 应用中轻松实现 Feed Generator。
官方教程: 创建自定义 feed
官方 starter kit: bluesky-social/feed-generator
注册 FeedGenerator 算法
最简单的用法是在AppServiceProvider::boot() 中以闭包形式注册算法。
name 请使用 URL 安全的字符串。
算法的返回值是包含 cursor 与 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- Service DID 会根据当前 URL 自动生成(例如
did:web:example.com)。
发布 feed(创建命令)
只在 Laravel 应用中实现 FeedGenerator 并不会将其发布到 Bluesky。需要创建并执行一个调用publishFeedGenerator 的命令。
1
生成命令
2
实现命令
3
执行命令
publishFeedGenerator 只是更新信息,可以多次执行。创建多个 FeedGenerator
只要改变name 并多次调用 register,就可以创建多个 feed。
publishFeedGenerator。
拆分算法为独立类
相比闭包,使用独立的类可以让代码更容易维护。你可以创建实现FeedGeneratorAlgorithm 接口的 callable 类,并在 AppServiceProvider 中注册它。
认证
官方 starter kit 中的认证功能默认启用。要禁用它,只需向validateAuthUsing 传入一个直接返回用户 DID 的闭包。
进阶用法
用 Artisan 命令和定时任务将帖子保存到数据库,让算法只需从 DB 读取,就可以在不调用 API 的情况下实现更快的 feed。Source: docs/feed-generator.md