개요
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