概觀
本頁面是 AT Protocol 官方 bot 教學 的 Laravel 版。說明如何以laravel-bluesky 套件將 TypeScript 版的內容以 PHP/Laravel 實作。
官方教學中會透過 lex 指令逐次下載 Lexicon 檔案,但 laravel-bluesky 已透過 atproto-lexicon-contracts 事先納入所有 Lexicon,因此不需這些步驟。透過 Artisan 指令與 HasShortHand trait 的方法,幾乎所有操作皆可實作。
前置條件
- 已安裝
laravel-bluesky套件 - 已準備好 Bluesky 帳號與 App Password
第 1 部分:基本 bot(貼文)
建立 Artisan 指令
以php artisan make:command 建立 bot 用的指令。
app/Console/Commands/BotPostCommand.php。
手動執行
以任務排程自動執行
於routes/console.php 加入定期執行設定。
以 GitHub Actions 自動執行
若沒有伺服器,也可以透過 GitHub Actions 自動執行。第 2 部分:回覆 bot(監控 mention)
建立自動回覆 mention 的 bot。同時介紹使用 AI 生成回覆的範例。取得通知並回覆 mention
若 thread 的 root 不同,請以
app.bsky.feed.getPostThread 取得 thread 資訊並設定為 root。此簡化實作將父貼文視為 root。排程輪詢
使用 AI 生成回覆
將laravel/ai 套件與 laravel-amazon-bedrock 驅動結合,即可依 mention 內容生成 AI 回覆。
第 3 部分:Label bot
此為對應官方教學中labelAsBot 的功能。對 bot 帳號的個人資料附加 self label,明示這是自動化帳號。
Label 只需在初次設定時執行一次即可。與第 1、2 部分的指令獨立實作為另一個指令。
建立 label bot 指令
執行
關於其他官方教學
AT Protocol 的官方教學還有其他數個主題。以下彙整laravel-bluesky 的對應狀況。
自訂 feed
Feed Generator 詳細說明使用 Laravel 實作自訂 feed generator 的方法。OAuth 認證
Socialite 中說明使用 Laravel Socialite 進行 OAuth 認證的實作方式,比官方教學更容易實作。社群應用(statusphere)
Laravel 版的 statusphere 於 invokable/statusphere 公開。其基於未使用lex 或 tap 指令的舊版 statusphere,因此與最新的官方教學略有差異。