概要
Feed Generator は Bluesky 上で動作する「アルゴリズム的フィード」の仕組みです。特定のキーワードやユーザー条件に合わせた独自フィードを公開できます。laravel-bluesky を使うと、Laravel アプリケーション上に Feed Generator を簡単に実装できます。
公式チュートリアル: カスタムフィード作成
公式スターターキット: 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)。
フィードの公開(コマンド作成)
Laravel アプリ上に FeedGenerator を実装しただけでは Bluesky には公開されません。publishFeedGenerator を呼び出すコマンドを作成して実行します。
1
コマンドを生成する
2
コマンドを実装する
3
コマンドを実行する
publishFeedGenerator は情報を更新するだけなので何度でも実行できます。複数 FeedGenerator の作成
name を変えて register を複数回呼び出すだけで複数のフィードを作成できます。
publishFeedGenerator を呼び出します。
アルゴリズムクラスの分離
クロージャの代わりに独立したクラスを使うことで、コードを整理しやすくなります。FeedGeneratorAlgorithm コントラクトを実装した callable クラスを作成し、AppServiceProvider に登録します。
認証
公式スターターキットの認証機能はデフォルトで有効になっています。無効化するにはvalidateAuthUsing に単純にユーザー DID を返すクロージャを渡します。
高度な使い方
Artisan コマンドとタスクスケジュールを使って投稿をデータベースに保存し、アルゴリズムでは DB から取得するだけにすると、API 呼び出しなしで高速なフィードを実現できます。Source: docs/feed-generator.md