赞片CMSAPI接口
学完这篇,你能把赞片CMS(ZANPIAN CMS)的 API 接口打开、配上密钥、并用 curl 调通「列表」和「详情」两个最常用的接口。
赞片CMS 是基于 ThinkPHP 的视频站建站系统,它的 API 主要给移动端 App、小程序、采集器或第三方站点喂数据。下面按顺序做一遍,全程大概 10 分钟。
第一步:确认版本,找到 API 入口
这一步要确认你装的是哪个版本、接口文件在哪,做完你就知道该往哪个地址发请求了。
登录后台,看首页右下角版本号(形如 ZANPIAN CMS v3.x)。接口入口通常只有两处:
- 根目录独立入口:
http://你的域名/api.php - ThinkPHP 模块路由:
http://你的域名/index.php/api/index
用浏览器直接打开 http://你的域名/api.php。如果返回一段 JSON 或 XML(比如 {"code":0,"msg":"..."} 或报「缺少参数」),说明入口存在、框架正常。
注意:如果你开了伪静态,
/api.php这条路径必须写完整,不要写成/api,否则会被 rewrite 规则吃掉,返回 404。
第二步:后台开启接口并设置密钥
这一步把接口从「关闭」改成「开启」,并拿到调用凭证。
进入后台菜单 系统 → 网站设置 → API 接口设置(部分版本叫 扩展 → 采集接口设置),逐项填:
- 接口开关:开启
- 接口密钥 / 安全码(api_key):填一串 32 位随机字符,例如
8f3a...c21 - 默认返回格式:json
- 单页最大条数:20(留空或 0 表示不限制,不建议)
- 允许调用 IP:留空 = 不限制
保存后进入 系统 → 缓存管理 → 点击 清除全部缓存(含数据缓存和模板缓存)。
注意:密钥改完必须同步更新调用方,否则所有请求会统一返回
code=-1或 403,而报错信息往往只有「密钥错误」四个字。
第三步:调用列表接口
这一步拿到一页视频列表,是所有对接的基础。
http://你的域名/api.php?ac=videolist&pg=1&limit=20&t=1&order=addtime&format=json&key=你的密钥
常用参数含义:
| 参数 | 作用 | 示例 |
|---|---|---|
| ac | 接口动作 | videolist |
| pg | 页码,从 1 开始 | 1 |
| limit | 本页条数,受后台上限约束 | 20 |
| t | 分类 ID,后台 分类管理 里能看到 | 1 |
| order | 排序字段 | addtime |
| format | 返回格式 | json / xml |
返回体里主要看 data.list 数组和 data.page 分页信息。
第四步:调用详情接口和搜索接口
详情接口按 ID 取单条完整数据,搜索接口按关键词模糊匹配。
# 详情
http://你的域名/api.php?ac=videodetail&id=123&format=json&key=你的密钥
# 搜索
http://你的域名/api.php?ac=search&wd=关键词&pg=1&limit=10&format=json&key=你的密钥
详情接口返回里通常包含 vod_name、vod_pic、vod_content、以及播放组 vod_play_url。vod_play_url 是分集字符串,格式一般是 第1集$地址#第2集$地址,拆分时先按 # 切集、再按 $ 切「集名/地址」。
注意:
vod_content里的 HTML 是转义过的,前端渲染前要先反转义,否则页面上会直接显示<p>。
第五步:如果开了安全模式,补上签名
后台若勾选了「开启签名校验」,请求必须多带一个 sign 参数,规则是:把所有参数按参数名 ASCII 升序拼成 k=v&k=v,末尾直接接密钥,做一次 MD5。
$params = ['ac'=>'videolist','pg'=>1,'limit'=>20,'key'=>$key];
ksort($params);
$str = urldecode(http_build_query($params)) . $key;
$params['sign'] = md5($str);
第六步:用 curl 调试并排查
curl -s "http://你的域名/api.php?ac=videolist&pg=1&limit=2&format=json&key=你的密钥" | python -m json.tool
-s 静默、json.tool 格式化,一眼就能看出返回结构对不对。
注意:如果浏览器能打开但代码调不通,八成是 CORS。在
api.php顶部加header('Access-Control-Allow-Origin: *');再试;同时确认服务器没开防护软件的「防采集」规则,它会把带key=的请求直接拦成 503。
常见坑速查
- 改了数据但接口不更新:先清缓存,再检查是否开了 CDN 缓存。
- 返回中文乱码:确认输出头是
Content-Type: application/json; charset=utf-8。 - 条数总是被截断:后台「单页最大条数」在起作用。
- 分页对不上:接口页码从 1 开始,很多前端分页组件从 0 开始。
小结
- 入口是
/api.php,先用浏览器确认能返回 JSON。 - 后台
系统 → 网站设置 → API 接口设置开启接口、设置 32 位密钥、清缓存。 - 核心参数是
ac、pg、limit、t、format、key。 - 列表用
ac=videolist,详情用ac=videodetail&id=x,搜索用ac=search&wd=x。 - 开了签名校验就按 ASCII 升序拼接 + 密钥做 MD5。
- 调不通先查密钥、缓存、CORS 和防采集规则这四项。
原文链接:https://www.gj0.com/thread-109.html
转载请注明出处并保留本声明;内容仅代表作者观点,与本站立场无关。若本文涉嫌侵权,请联系本站处理。