收件箱 (Inbox)
收件箱功能允許外部服務、腳本或自動化工具透過 HTTP 主動將文章推送到 FeedCraft。每個收件箱都可以透過自訂配方產生 RSS 訂閱位址,方便在任何 RSS 閱讀器中訂閱。
典型的使用流程如下:
- 在管理面板中建立收件箱(取得唯一的 inbox ID)。
- 建立系統授權令牌(用於鑑權推送請求的密鑰)。
- 透過腳本、自動化工具或第三方平台,使用標準 JSON HTTP POST 推送文章。
- 建立自訂配方,將該收件箱作為資料來源。
- 在閱讀器中訂閱產生的 RSS 位址。
在管理面板中,前往 工作台 > Feed 源生成 > 推送收件匣。
- 點擊新建收件箱。
- 填寫必要欄位:
- 收件箱 ID:唯一的 URL 安全識別符(只允許小寫字母、數字、連字號、底線)。建立後無法修改。
- 標題:收件箱的可讀名稱。
- 最大保存數:最多保留的文章數量,超出後按建立時間從舊到新自動刪除(預設 100)。若設為
0會立即刪除該收件箱的所有條目,請用大數值代替「無限制」。 - 公開可見性:開啟後,任何人可直接拉取文章內容;關閉後需提供系統授權令牌。
- 點擊確定儲存。
點擊操作欄中的編輯收件箱,可修改標題、描述、最大保存數和公開可見性。收件箱 ID 不可修改。
點擊操作欄中的刪除。此操作將永久刪除該收件箱及其內所有文章。
管理系統授權令牌
Section titled “管理系統授權令牌”前往 設定 > 系統授權令牌,建立用於鑑權推送請求的 API 令牌。
- 點擊產生新令牌。
- 輸入描述性標籤(例如「iPhone 捷徑」、「Home Assistant」)。
- 立即複製產生的令牌——它只會顯示一次,之後無法再次查看。
隨時可點擊刪除撤銷令牌。使用該令牌的所有整合將立即失效。
使用推送介面,從任何 HTTP 用戶端、腳本或自動化平台推送文章。
POST /api/inbox/{inbox_id}/items在 Authorization 請求標頭中攜帶系統授權令牌:
Authorization: Bearer YOUR_SYSTEM_AUTH_TOKENContent-Type: application/json傳送一個 JSON 陣列,每個元素代表一篇文章。只有 title 是必填欄位。
[ { "id": "可選的自訂唯一ID", "title": "文章標題", "url": "https://example.com/article", "content": "<p>文章正文 HTML 內容。</p>", "summary": "簡短描述,在訂閱源預覽中顯示。", "author": "作者名", "timestamp": 1716470400 }]| 欄位 | 必填 | 說明 |
|---|---|---|
title | ✅ | 文章標題。 |
id | 可選 | 自訂穩定 ID。省略時自動產生 UUID。若相同 id 再次推送,則更新(upsert)已有文章。 |
url | 可選 | 文章原始連結。省略時 FeedCraft 自動產生指向儲存內容的連結。 |
content | 可選 | 文章完整 HTML 正文。 |
summary | 可選 | 簡短描述,預設取 content 前 200 個 Unicode 字元(rune)。 |
author | 可選 | 作者名。 |
timestamp | 可選 | 發布時間的 Unix 時間戳記(秒)。預設為當前時間。 |
批次限制:每次請求最多 100 筆。
cURL 範例
Section titled “cURL 範例”curl -X POST "https://YOUR_SERVER/api/inbox/my-inbox/items" \ -H "Authorization: Bearer YOUR_SYSTEM_AUTH_TOKEN" \ -H "Content-Type: application/json" \ -d '[{"title": "Hello World", "content": "<p>第一篇推送文章!</p>"}]'{ "total": 1, "created": 1, "updated": 0}透過 RSS 訂閱
Section titled “透過 RSS 訂閱”直接訂閱(最簡方式)
Section titled “直接訂閱(最簡方式)”每個收件箱都內建了一個可以直接訂閱的 RSS 位址,無需建立自訂配方:
GET /inbox/{inbox_id}/rss將此位址直接貼到 RSS 閱讀器中即可訂閱。對於私有收件箱,需在 URL 後附加 Token:
/inbox/{inbox_id}/rss?token=YOUR_SYSTEM_AUTH_TOKEN透過自訂配方訂閱(進階)
Section titled “透過自訂配方訂閱(進階)”若需要對收件箱內容進行 Craft 處理(如 AI 翻譯、摘要產生、內容過濾),則建立自訂配方。
- 前往工作台 > Feed 源管理 > 配方管理,點擊新建配方。
- 將資料來源類型 (Source Type) 設定為
inbox。 - 在 Source Config JSON 欄位中輸入:
{ "inbox_source": { "inbox_id": "YOUR_INBOX_ID" } }
- 將 Craft 設定為所需的處理鏈(例如
translate-content、summary)。 - 儲存配方後,在配方列表中點擊複製連結即可取得 RSS 訂閱位址。
私有收件箱的存取控制
Section titled “私有收件箱的存取控制”當收件箱關閉公開可見性後,文章內容介面需要進行身份驗證。
在文章 URL 後加上 ?token=YOUR_SYSTEM_AUTH_TOKEN:
GET /inbox/{inbox_id}/items/{article_id}/content?token=YOUR_TOKEN或使用 Authorization: Bearer YOUR_TOKEN 請求標頭。
垃圾回收 (GC)
Section titled “垃圾回收 (GC)”FeedCraft 提供垃圾回收工具,可透過管理 API 使用:
- GET
/api/admin/inboxes/gc/stats— 回傳總條目數、孤兒條目數(屬於已刪除收件箱的條目)和溢出條目數。 - POST
/api/admin/inboxes/gc/cleanup— 透過單一原子交易刪除所有孤兒和溢出條目。
FeedCraft v3.2.0