メインコンテンツへスキップ

概要

Laravel Bluesky は2種類の認証方法をサポートします。認証後の API 呼び出しは両方法で共通です。
LegacyAgent という命名は「OAuth 以前の認証方式」を意味しますが、App Password 自体は廃止予定ではありません。通知や自動投稿など、ユーザー操作を伴わない場面では App Password の方がシンプルで適しています。

アーキテクチャ

BlueskyManager は Facade Bluesky の実体です。login() または withToken() でエージェントを設定し、その後の API 呼び出しはどちらの認証方法でも同じメソッドを使います。

App Password (LegacyAgent)

認証フロー

Bluesky::login()

.env に App Password を設定して login() を呼ぶだけです。

LegacySession の再利用

毎回 login() を呼ぶと毎回 API リクエストが発生します。セッションをキャッシュして再利用するとより効率的です。

LegacySession の主なキー

適したユースケース

  • バックグラウンドジョブ・キュー処理での自動投稿
  • Laravel Notification チャンネルを使った通知
  • バッチ処理・スケジューリング
  • アプリケーション自身のアカウントで投稿する場合

OAuth (OAuthAgent)

認証フロー

Bluesky::withToken()

Socialite で取得した OAuthSessionwithToken() に渡します。
バックグラウンドジョブや Console でも、DB に保存した値から OAuthSession を組み立てられます。

OAuthSession の主なキー

OAuth の refresh_token は1回しか使えません。OAuthSessionUpdated イベントを使って、トークン更新後は必ず DB を更新してください。詳細は Socialite を参照してください。

適したユースケース

  • Socialite を使ったユーザーログイン
  • ユーザーの代わりに API を呼び出す操作
  • ユーザーごとに異なるアカウントで操作が必要な場合

認証後の API 呼び出しは共通

どちらの認証方法でも、withToken() の後は同じ API メソッドを使います。
BlueskyManager は内部で LegacyAgent または OAuthAgent を使い分けますが、呼び出し側のコードには影響しません。

どちらを選ぶべきか

迷ったときは目的で分けるのが一番わかりやすいです。「アプリが自分で動く」なら App Password、「ユーザーが操作する」なら OAuth です。両方を組み合わせることも可能で、通知には App Password を使い、ユーザーログインには OAuth を使うという構成もよく見られます。

参考リンク

最終更新日 2026年4月29日