- 品牌Eyoucms
- 語(yǔ)言PHP
- 數(shù)據(jù)庫(kù)Mysql
- 環(huán)境適用于易優(yōu) v1.7.6 及以上版本系統(tǒng)
- 大小21.38KB
- 版本號(hào)1.0.0
- 編碼UTF-8
- 源文件 完全開源(含全部源文件)
文章遠(yuǎn)程發(fā)布接口
為EyouCMS提供安全、穩(wěn)定、易接入的文章發(fā)布API,讓第三方系統(tǒng)、采集工具、AI寫作平臺(tái)直接推送文章到您的站點(diǎn)
為什么需要這個(gè)插件?
EyouCMS 后臺(tái)手動(dòng)發(fā)布文章效率低,無法滿足以下場(chǎng)景:
- 批量發(fā)布 — 從 Excel、Word、Markdown 文檔批量導(dǎo)入文章
- AI 寫作對(duì)接 — ChatGPT、文心一言、Kimi 等 AI 生成內(nèi)容自動(dòng)推送到網(wǎng)站
- 采集工具對(duì)接 — 火車頭、八爪魚、自研爬蟲直接發(fā)布到 EyouCMS
- 多站點(diǎn)同步 — 一個(gè)內(nèi)容源,同步發(fā)布到多個(gè) EyouCMS 站點(diǎn)
- 自媒體矩陣 — Python / Node.js / PHP 腳本定時(shí)推送內(nèi)容
本插件提供一套簡(jiǎn)單易用的 HTTP API 接口,一個(gè) Token 即可調(diào)用,開箱即用,無需修改 EyouCMS 內(nèi)核代碼。
核心功能
| 功能 | 說明 |
|---|---|
| 文章發(fā)布接口 | POST 請(qǐng)求即可發(fā)布一篇完整文章,返回文章 ID 與訪問 URL |
| 欄目列表接口 | GET 接口拉取站點(diǎn)全部文章欄目,便于第三方系統(tǒng)選擇 typeid |
| 極簡(jiǎn)認(rèn)證 | 支持 Authorization: Bearer Token 和 ?api_token=xxx 兩種方式,與 WordPress / Ghost 等主流 CMS 一致 |
| API Token 自動(dòng)生成 | 安裝即自動(dòng)生成 Token,支持一鍵重置,舊 Token 立即失效 |
| 完整 SEO 字段 | 支持 seo_title / seo_keywords / seo_description / tags / 自定義文件名 |
| 自動(dòng) SEO 描述 | 未填寫 seo_description 時(shí)自動(dòng)從正文截取,省去手動(dòng)填寫 |
| 文章屬性全開放 | 頭條 / 推薦 / 特薦 / 置頂 / 加粗 / 跳轉(zhuǎn) / 閱讀權(quán)限 / 排序值 / 自定義發(fā)布時(shí)間 |
| 事務(wù)安全 | 主表與內(nèi)容副表事務(wù)寫入(InnoDB),失敗自動(dòng)回滾,杜絕臟數(shù)據(jù) |
| 自動(dòng)更新 Sitemap | 發(fā)布成功后自動(dòng)調(diào)用站點(diǎn)地圖生成,新文章秒級(jí)提交搜索引擎 |
| 一鍵啟用/禁用 | 后臺(tái)開關(guān)控制 API 服務(wù),關(guān)閉后所有外部請(qǐng)求拒絕響應(yīng) |
接口列表
| 方法 | 接口地址 | 用途 |
|---|---|---|
| POST | /index.php/plugins/Api/publish | 發(fā)布一篇文章 |
| GET | /index.php/plugins/Api/categories | 獲取文章欄目列表 |
認(rèn)證方式
支持兩種認(rèn)證方式,任選其一,一個(gè) Token 搞定:
| 方式 | 用法 |
|---|---|
| Authorization Header(推薦) | 請(qǐng)求頭添加 Authorization: Bearer 您的Token |
| URL 參數(shù)(最簡(jiǎn)單) | URL 末尾加 ?api_token=您的Token,瀏覽器可直接測(cè)試 |
支持的文章字段
| 字段 | 必填 | 說明 |
|---|---|---|
| title | 是 | 文章標(biāo)題 |
| typeid | 是 | 欄目 ID |
| content | 是 | 文章正文(支持 HTML) |
| seo_title / seo_keywords / seo_description | 否 | SEO 三要素(描述不填則自動(dòng)截取正文) |
| litpic | 否 | 縮略圖 URL |
| tags / author / source | 否 | 標(biāo)簽 / 作者 / 來源 |
| add_time | 否 | 自定義發(fā)布時(shí)間(任意可被 strtotime 解析的格式) |
| is_head / is_recom / is_special / is_top / is_b / is_jump | 否 | 頭條 / 推薦 / 特薦 / 置頂 / 加粗 / 跳轉(zhuǎn) |
| jumplinks | 否 | 跳轉(zhuǎn)鏈接(is_jump=1 時(shí)生效) |
| htmlfilename | 否 | 自定義 URL 文件名(偽靜態(tài)/HTML 生成時(shí)生效) |
| arcrank / sort_order / click / status | 否 | 閱讀權(quán)限 / 排序值 / 初始點(diǎn)擊量 / 狀態(tài) |
| auto_sitemap | 否 | 是否自動(dòng)更新 sitemap,默認(rèn) 1 |
安全機(jī)制
| 機(jī)制 | 說明 |
|---|---|
| Bearer Token | 采用業(yè)界標(biāo)準(zhǔn) Bearer Token 認(rèn)證,與 WordPress REST API / Ghost API 一致 |
| 時(shí)序安全比較 | Token 校驗(yàn)使用 hash_equals(),防止時(shí)序攻擊 |
| 服務(wù)開關(guān) | 可一鍵禁用 API,緊急情況立即關(guān)閉外部入口 |
| Token 重置 | 懷疑泄露時(shí)一鍵重置 Token,舊 Token 立即失效 |
| 事務(wù)保護(hù) | InnoDB 事務(wù)寫入,失敗自動(dòng)回滾,數(shù)據(jù)完整性有保障 |
請(qǐng)求示例
方式一:Token 放 URL(最簡(jiǎn)單,適合快速測(cè)試)
curl -X POST "https://www.yoursite.com/index.php/plugins/Api/publish?api_token=sk_xxxx" \
-H "Content-Type: application/json" \
-d '{"title":"測(cè)試文章","typeid":2,"content":"<p>正文內(nèi)容</p>"}'方式二:Bearer Token(推薦,更安全)
curl -X POST "https://www.yoursite.com/index.php/plugins/Api/publish" \
-H "Authorization: Bearer sk_xxxx" \
-H "Content-Type: application/json" \
-d '{
"title": "通過API發(fā)布的第一篇文章",
"typeid": 2,
"content": "<p>這是文章正文,支持 HTML 標(biāo)簽。</p>",
"seo_keywords": "API,遠(yuǎn)程發(fā)布,EyouCMS",
"tags": "接口,自動(dòng)化",
"is_recom": 1
}'PHP 示例
$token = 'sk_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'; $url = 'https://www.yoursite.com/index.php/plugins/Api/publish'; $ch = curl_init($url); curl_setopt_array($ch, [ CURLOPT_POST => true, CURLOPT_RETURNTRANSFER => true, CURLOPT_HTTPHEADER => [ 'Content-Type: application/json', 'Authorization: Bearer ' . $token, ], CURLOPT_POSTFIELDS => json_encode([ 'title' => '通過API發(fā)布的第一篇文章', 'typeid' => 2, 'content' => '<p>文章正文</p>', ], JSON_UNESCAPED_UNICODE), ]); echo curl_exec($ch);
Python 示例
import requests
resp = requests.post(
'https://www.yoursite.com/index.php/plugins/Api/publish',
headers={'Authorization': 'Bearer sk_xxxx'},
json={'title': '文章標(biāo)題', 'typeid': 2, 'content': '<p>正文</p>'}
)
print(resp.json())響應(yīng)示例
{
"code": 0,
"msg": "發(fā)布成功",
"data": {
"aid": 128,
"url": "/index.php?m=home&c=View&a=index&aid=128"
}
}錯(cuò)誤碼說明
| 錯(cuò)誤碼 | 含義 |
|---|---|
| 0 | 成功 |
| 1001 | 缺少認(rèn)證參數(shù) |
| 1003 | API 密鑰無效 |
| 1004 | API 已禁用 |
| 1005 | API 未配置密鑰 |
| 2001 | 缺少必填參數(shù) |
| 2002 | 欄目不存在 |
| 5001 | 服務(wù)器內(nèi)部錯(cuò)誤 |
使用方式
Step 1. 安裝并啟用插件,系統(tǒng)自動(dòng)生成 API Token
Step 2. 進(jìn)入"應(yīng)用中心 → 文章遠(yuǎn)程發(fā)布接口 → API配置",復(fù)制 Token 與接口地址
Step 3. 在第三方系統(tǒng)用 Bearer Token 或 URL 參數(shù)發(fā)起請(qǐng)求
完成! 文章自動(dòng)入庫(kù),自動(dòng)更新 sitemap
適用場(chǎng)景
- 對(duì)接 AI 寫作平臺(tái)(ChatGPT / Claude / 文心一言 / Kimi / DeepSeek 等)自動(dòng)生成并發(fā)布文章
- 對(duì)接采集軟件(火車頭 / 八爪魚 / 后羿采集器 / 自研爬蟲)批量入庫(kù)
- 多 EyouCMS 站點(diǎn)內(nèi)容同步分發(fā)
- 從 Excel / CSV / Markdown 文檔批量導(dǎo)入歷史文章
- 自媒體團(tuán)隊(duì)內(nèi)部 CMS 推送至外部 EyouCMS 站點(diǎn)
- 自動(dòng)化定時(shí)任務(wù)(Python / Node / PHP 腳本)按計(jì)劃發(fā)布
兼容性
- EyouCMS v1.7.6 及以上版本
- 支持 PHP 7.0 - 8.x
- 支持任何能發(fā)起 HTTP 請(qǐng)求的客戶端語(yǔ)言(PHP / Python / Node.js / Java / Go / Shell ...)
- 不修改 EyouCMS 任何核心文件,卸載干凈無殘留
-
1、發(fā)貨方式:購(gòu)買后,請(qǐng)去綁定域名的網(wǎng)站后臺(tái)>插件應(yīng)用>已購(gòu)買插件里安裝;
2、授權(quán)范圍:插件授權(quán)包含授權(quán)域名下的子域名(小程序相關(guān)插件除外);
3、域名修改:第一次修改免費(fèi)(限購(gòu)買30天內(nèi));30天后兩年內(nèi)修改:均按插件最新價(jià)格的5折算;兩年后修改:按插件最新價(jià)格的8折算。插件價(jià)格低于10元時(shí),均按照10元算。
4、退款規(guī)則:請(qǐng)?jiān)谧屑?xì)了解產(chǎn)品功能并確定需要購(gòu)買后再付款購(gòu)買,如果不是功能問題恕不提供退款服務(wù);
5、免責(zé)聲明:第三方開發(fā)者出售的插件售后均有該開發(fā)者承擔(dān),如果插件資源和包含的圖片素材損害了您的權(quán)益,請(qǐng)聯(lián)系網(wǎng)站客服確認(rèn)處理;
6、禁止行為:請(qǐng)勿使用盜版插件,輕則有木馬漏洞,重則對(duì)你的系統(tǒng)核心文件造成損壞,這類行為導(dǎo)致的后果官方概不負(fù)責(zé)。







