Skip to main content

概要

Feed Generator は Bluesky 上で動作する「アルゴリズム的フィード」の仕組みです。特定のキーワードやユーザー条件に合わせた独自フィードを公開できます。laravel-bluesky を使うと、Laravel アプリケーション上に Feed Generator を簡単に実装できます。
公式チュートリアル: カスタムフィード作成
公式スターターキット: bluesky-social/feed-generator

FeedGenerator アルゴリズムの登録

最もシンプルな使い方は AppServiceProvider::boot() でアルゴリズムをクロージャとして登録することです。
name は URL セーフな文字列を使用してください。 アルゴリズムの戻り値は cursorfeed を含む配列です。
パッケージが必要なルートはすべて自動で登録されます。
  • http://localhost/xrpc/app.bsky.feed.getFeedSkeleton?feed=at://did:web:example.com/app.bsky.feed.generator/artisan
  • http://localhost/xrpc/app.bsky.feed.describeFeedGenerator
  • http://localhost/.well-known/did.json
  • Service DID は現在の URL から自動生成されます(例: did:web:example.com)。
自分で決めるのは FeedGenerator の name と実装内容だけです。

フィードの公開(コマンド作成)

Laravel アプリ上に FeedGenerator を実装しただけでは Bluesky には公開されません。publishFeedGenerator を呼び出すコマンドを作成して実行します。
1

コマンドを生成する

2

コマンドを実装する

3

コマンドを実行する

成功すると Bluesky プロフィールのフィード一覧にリンクが追加されます。publishFeedGenerator は情報を更新するだけなので何度でも実行できます。

複数 FeedGenerator の作成

name を変えて register を複数回呼び出すだけで複数のフィードを作成できます。
公開コマンドでも同様に複数回 publishFeedGenerator を呼び出します。

アルゴリズムクラスの分離

クロージャの代わりに独立したクラスを使うことで、コードを整理しやすくなります。FeedGeneratorAlgorithm コントラクトを実装した callable クラスを作成し、AppServiceProvider に登録します。

認証

公式スターターキットの認証機能はデフォルトで有効になっています。無効化するには validateAuthUsing に単純にユーザー DID を返すクロージャを渡します。
フィードがアカウントの「言語設定」に影響されます。FeedGenerator が投稿を取得しているにもかかわらず Bluesky 上でフィードが表示されない場合は、アカウントの言語設定を確認してください。

高度な使い方

Artisan コマンドとタスクスケジュールを使って投稿をデータベースに保存し、アルゴリズムでは DB から取得するだけにすると、API 呼び出しなしで高速なフィードを実現できます。
最終更新日 2026年4月26日