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년 7월 13일