跳转到主要内容

概览

laravel-bluesky 可以集成到 Laravel 的 Notification 系统中。通过 BlueskyChannel 可以发送普通帖子,通过 BlueskyPrivateChannel 可以发送私信(DM)。

可用通道

Notification 类

BlueskyChannel

via() 中指定 BlueskyChannel::class,通过 toBluesky() 返回发送内容。
Post 的使用方式与 Basic client 相同。TextBuilder、Embed 等也可以按同样的方式使用。

BlueskyPrivateChannel

BlueskyPrivateMessagePost 几乎一样,但只支持 text、facets、embed。其中 embed 仅支持 QuoteRecord

即时通知

如果不使用模型,需要临时指定接收方,可以使用 Notification::route()

BlueskyChannel

BlueskyPrivateChannel

DM 必须指定 receiver(发送目标的 DID 或 handle)。此外,接收者一侧也需要允许接收 DM。
  • App password 时,需要拥有发送 DM 的权限。
  • OAuth 时,需要 transition:chat.bsky 权限。
在 Bluesky 中不能给自己发送 DM。如果想给自己发通知,请另外准备一个发送用账号。
个人使用等场景下,如果发送者和接收者一直固定,可以在 .env 中配置。请为此专门创建一个发送账号。

用户通知

在使用 Notifiable trait 的模型上定义通知路由。

BlueskyChannel

BlueskyPrivateChannel

也可以把用户自己设为接收者。

BlueskyRoute

根据认证方式(App password 或 OAuth)指定方式不同。建议使用具名参数。
如果只是给自己的账号发通知,App password 是最简单的方式。你不需要考虑 refresh_token 的更新,只要配置好 .env 就能使用。

查看通知结果

和普通的 Laravel 一样,可以通过 NotificationSent 事件查看通知后的响应。
最后修改于 2026年7月18日