<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh-Hans-CN">
	<id>https://photonicat.com/index.php?action=history&amp;feed=atom&amp;title=Photonicat_2_%E5%BC%80%E5%8F%91%E8%80%85_API</id>
	<title>Photonicat 2 开发者 API - 版本历史</title>
	<link rel="self" type="application/atom+xml" href="https://photonicat.com/index.php?action=history&amp;feed=atom&amp;title=Photonicat_2_%E5%BC%80%E5%8F%91%E8%80%85_API"/>
	<link rel="alternate" type="text/html" href="https://photonicat.com/index.php?title=Photonicat_2_%E5%BC%80%E5%8F%91%E8%80%85_API&amp;action=history"/>
	<updated>2026-07-26T15:59:03Z</updated>
	<subtitle>本wiki上该页面的版本历史</subtitle>
	<generator>MediaWiki 1.44.2</generator>
	<entry>
		<id>https://photonicat.com/index.php?title=Photonicat_2_%E5%BC%80%E5%8F%91%E8%80%85_API&amp;diff=927&amp;oldid=prev</id>
		<title>2026年7月13日 (一) 09:50 C2h2</title>
		<link rel="alternate" type="text/html" href="https://photonicat.com/index.php?title=Photonicat_2_%E5%BC%80%E5%8F%91%E8%80%85_API&amp;diff=927&amp;oldid=prev"/>
		<updated>2026-07-13T09:50:15Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;zh-Hans-CN&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;←上一版本&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;2026年7月13日 (一) 17:50的版本&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l2&quot;&gt;第2行：&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;第2行：&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|-&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|-&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;! 适用 / Applies to&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;! 适用 / Applies to&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| Photonicat &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;1/&lt;/del&gt;2, pcat-manager-web（2026-07 起所有接口强制鉴权） / Photonicat &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;1/&lt;/del&gt;2, pcat-manager-web (auth enforced on all endpoints since 2026-07)&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;| Photonicat 2, pcat-manager-web（2026-07 起所有接口强制鉴权） / Photonicat 2, pcat-manager-web (auth enforced on all endpoints since 2026-07)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key pcat_wiki:diff:1.41:old-918:rev-927:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>C2h2</name></author>
	</entry>
	<entry>
		<id>https://photonicat.com/index.php?title=Photonicat_2_%E5%BC%80%E5%8F%91%E8%80%85_API&amp;diff=918&amp;oldid=prev</id>
		<title>C2h2：​New topic: developer overview of the REST + WebSocket API — auth, endpoint groups, error shape, quick examples</title>
		<link rel="alternate" type="text/html" href="https://photonicat.com/index.php?title=Photonicat_2_%E5%BC%80%E5%8F%91%E8%80%85_API&amp;diff=918&amp;oldid=prev"/>
		<updated>2026-07-12T16:47:12Z</updated>

		<summary type="html">&lt;p&gt;New topic: developer overview of the REST + WebSocket API — auth, endpoint groups, error shape, quick examples&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! 适用 / Applies to&lt;br /&gt;
| Photonicat 1/2, pcat-manager-web（2026-07 起所有接口强制鉴权） / Photonicat 1/2, pcat-manager-web (auth enforced on all endpoints since 2026-07)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
pcat-manager-web 管理界面的所有功能都基于一套 &amp;#039;&amp;#039;&amp;#039;REST + WebSocket API&amp;#039;&amp;#039;&amp;#039;，可用于脚本自动化和第三方集成（Home Assistant、监控面板、短信转发等）。本页是面向开发者的概览。&amp;#039;&amp;#039;&amp;#039;注意&amp;#039;&amp;#039;&amp;#039;：这是设备内部 API，版本间可能变动，升级固件后请回归测试你的集成。&lt;br /&gt;
&lt;br /&gt;
Everything in the pcat-manager-web UI is driven by a &amp;#039;&amp;#039;&amp;#039;REST + WebSocket API&amp;#039;&amp;#039;&amp;#039; you can use for scripting and integrations (Home Assistant, monitoring dashboards, SMS forwarding…). This page is a developer-oriented overview. &amp;#039;&amp;#039;&amp;#039;Note&amp;#039;&amp;#039;&amp;#039;: this is the device&amp;#039;s internal API and may change between releases — retest integrations after firmware updates.&lt;br /&gt;
&lt;br /&gt;
== 基础 Basics ==&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Base URL&amp;#039;&amp;#039;&amp;#039;：设备地址，如 &amp;lt;code&amp;gt;http://172.16.0.1/&amp;lt;/code&amp;gt; / your device address, e.g. &amp;lt;code&amp;gt;http://172.16.0.1/&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;认证 Authentication&amp;#039;&amp;#039;&amp;#039;：先 POST &amp;lt;code&amp;gt;/login&amp;lt;/code&amp;gt; 建立会话（Cookie）；2026-07 起所有 API 强制登录校验。 / Establish a session via &amp;lt;code&amp;gt;/login&amp;lt;/code&amp;gt; first; since 2026-07 every endpoint requires it.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;格式 Content type&amp;#039;&amp;#039;&amp;#039;：POST 一律 &amp;lt;code&amp;gt;application/json&amp;lt;/code&amp;gt;，并携带有效 &amp;#039;&amp;#039;&amp;#039;CSRF token&amp;#039;&amp;#039;&amp;#039;（登录页面/会话中获取）。所有&amp;#039;&amp;#039;&amp;#039;改变状态的操作只接受 POST&amp;#039;&amp;#039;&amp;#039;。 / POSTs use &amp;lt;code&amp;gt;application/json&amp;lt;/code&amp;gt; with a valid &amp;#039;&amp;#039;&amp;#039;CSRF token&amp;#039;&amp;#039;&amp;#039;; all state-changing operations are POST-only.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;错误格式 Error shape&amp;#039;&amp;#039;&amp;#039;（统一 / uniform）：&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{ &amp;quot;status&amp;quot;: &amp;quot;error&amp;quot;, &amp;quot;message&amp;quot;: &amp;quot;Descriptive error message&amp;quot;, &amp;quot;error_code&amp;quot;: &amp;quot;SPECIFIC_ERROR_CODE&amp;quot; }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
: HTTP 状态码：200 成功，400 参数错误，401 未登录，403 无权限/CSRF 失败，404 不存在。 / 200 OK, 400 bad request, 401 login required, 403 forbidden/CSRF, 404 not found.&lt;br /&gt;
&lt;br /&gt;
== 接口分组 Endpoint groups ==&lt;br /&gt;
&lt;br /&gt;
以下为主要分组及代表接口（完整字段见设备仓库 docs/api.md）。 / Major groups with representative endpoints (full schemas in the repo&amp;#039;s docs/api.md).&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:100%&amp;quot;&lt;br /&gt;
! style=&amp;quot;width:22%&amp;quot; | 分组 Group !! 代表接口 Representative endpoints !! 说明 Notes&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;系统 System&amp;#039;&amp;#039;&amp;#039; || &amp;lt;code&amp;gt;GET /api/v1/system/board.json&amp;lt;/code&amp;gt;（设备信息 device info）、系统信息 system info、重启/关机 reboot &amp;amp; poweroff || 型号、序列号、固件版本、运行时间 / model, serial, firmware, uptime&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;网络 Network&amp;#039;&amp;#039;&amp;#039; || 无线配置 wireless config、接口状态 interfaces、&amp;lt;code&amp;gt;GET&amp;lt;/code&amp;gt; 已连接设备 connected devices || WiFi SSID/密码、DHCP 客户端列表 / WiFi credentials, DHCP client list&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;蜂窝 Mobile&amp;#039;&amp;#039;&amp;#039; || APN 设置、调制解调器信息/配置 modem info &amp;amp; config || 运营商、信号、IMEI、网络模式 / carrier, signal, IMEI, network mode&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;短信 SMS&amp;#039;&amp;#039;&amp;#039; || 列表 list、发送 send（v1/v2）、标记已读 mark-read、删除 delete、清空 clear || 收发短信自动化的主要入口 / the main hook for SMS automation&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;语音通话 Voice call&amp;#039;&amp;#039;&amp;#039; || 拨打 make、接听 answer、挂断 hangup、状态 status、通话记录 history、音频通道 audio path || 蜂窝版专属 / cellular models only&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;设备控制 Device control&amp;#039;&amp;#039;&amp;#039; || 电源 LED、蜂鸣器 beeper、设备设置 device settings || 灯光/提示音策略 / LED &amp;amp; beeper policies&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;定时 Timer&amp;#039;&amp;#039;&amp;#039; || 时间信息、定时任务管理、车载模式 car boot mode || 对应 /timer 页面的三种电源模式 / powers the /timer page modes&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;统计 Statistics&amp;#039;&amp;#039;&amp;#039; || 仪表盘数据 dashboard、状态 status、流量统计 data statistics || 监控集成最常用 / most used for monitoring integrations&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;屏幕 Screen&amp;#039;&amp;#039;&amp;#039; || &amp;lt;code&amp;gt;GET/POST /api/v1/screen/user_config.json&amp;lt;/code&amp;gt;、&amp;lt;code&amp;gt;GET /api/v1/screen/data.json&amp;lt;/code&amp;gt;、&amp;lt;code&amp;gt;GET /api/v1/screen/frame.png&amp;lt;/code&amp;gt;、custom_metrics 状态/执行 || 布局、数据、&amp;#039;&amp;#039;&amp;#039;实时截屏&amp;#039;&amp;#039;&amp;#039; / layout, data, &amp;#039;&amp;#039;&amp;#039;live frame capture&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;系统配置 System config&amp;#039;&amp;#039;&amp;#039; || CPU 调度 CPU scheduling、风扇转速 fan speed、屏幕短信条数限制 SMS screen limit || 性能与散热调优 / performance &amp;amp; thermals&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;维护 Maintenance&amp;#039;&amp;#039;&amp;#039; || 固件管理 firmware management、软件包管理 package management、SMS Hook 管理 || 升级与短信钩子（转发脚本）/ upgrades &amp;amp; SMS hooks (forwarding scripts)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== WebSocket（SocketIO）==&lt;br /&gt;
&lt;br /&gt;
实时事件走 SocketIO（连接根路径）。 / Real-time events use SocketIO at the root URL.&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;客户端 → 服务器 Client → server&amp;#039;&amp;#039;&amp;#039;：&amp;lt;code&amp;gt;request_install&amp;lt;/code&amp;gt;（本地 IPK 安装 / local IPK install）、&amp;lt;code&amp;gt;request_install_package&amp;lt;/code&amp;gt;（仓库安装 / repo install）、&amp;lt;code&amp;gt;request_firmware_upgrade&amp;lt;/code&amp;gt;、&amp;lt;code&amp;gt;get_firmware_upgrade_status_socket&amp;lt;/code&amp;gt;、&amp;lt;code&amp;gt;cancel_firmware_upgrade&amp;lt;/code&amp;gt;（仅下载阶段可取消 / cancellable during download only）&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;服务器 → 客户端 Server → client&amp;#039;&amp;#039;&amp;#039;：&amp;lt;code&amp;gt;log_response&amp;lt;/code&amp;gt;（实时日志 / live logs）、&amp;lt;code&amp;gt;firmware_upgrade_status&amp;lt;/code&amp;gt;（含进度百分比 / with progress percentage）：&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{ &amp;quot;status&amp;quot;: &amp;quot;downloading&amp;quot;, &amp;quot;progress&amp;quot;: 45, &amp;quot;message&amp;quot;: &amp;quot;Downloading firmware (45%)&amp;quot; }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* 2026-07 起 WebSocket 连接同样需要已登录会话。 / Since 2026-07 the socket also requires an authenticated session.&lt;br /&gt;
&lt;br /&gt;
== 快速上手示例 Quick example ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# 登录拿会话 / log in for a session cookie&lt;br /&gt;
curl -c jar.txt -X POST http://172.16.0.1/login -d &amp;#039;password=YOUR_PASSWORD&amp;#039;&lt;br /&gt;
&lt;br /&gt;
# 读取设备信息 / read device info&lt;br /&gt;
curl -b jar.txt http://172.16.0.1/api/v1/system/board.json&lt;br /&gt;
&lt;br /&gt;
# 抓一帧屏幕画面 / grab a live screen frame&lt;br /&gt;
curl -b jar.txt -o frame.png http://172.16.0.1/api/v1/screen/frame.png&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; 提示 Tips&lt;br /&gt;
* 写操作需附带 CSRF token；具体字段名以当前固件版本为准。 / State-changing calls need the CSRF token; field names follow your firmware version.&lt;br /&gt;
* 不要在公网直接暴露管理端口；如需远程访问请走 VPN。 / Never expose the manager port to the internet; use a VPN for remote access.&lt;br /&gt;
&lt;br /&gt;
[[Photonicat 2 管理界面新功能 (2026)]] ｜ [[Photonicat 2 小屏幕自定义]]&lt;/div&gt;</summary>
		<author><name>C2h2</name></author>
	</entry>
</feed>