> ## Documentation Index
> Fetch the complete documentation index at: https://docs.acedata.cloud/llms.txt
> Use this file to discover all available pages before exploring further.

# 企业微信机器人

> Platform 集成指南 - Ace Data Cloud

部署属于自己的企业微信账号实例，使用手机企业微信扫码登录，通过 REST API 或 MCP 读取账号、联系人、会话与本地同步消息。实例对应普通企业微信账号，无需私有化服务器或企业邮箱域名配置。

当前为 Alpha。账号读取已完成真实会话验证；本人文本发送及事件读回已完成真实验收；其他联系人、群操作和新实例恢复仍需完成部署环境验收。媒体发送、引用回复、真实 @、群成员管理和送达回执尚未开放。请以实例 `/api/capabilities` 返回值为准。

## 部署与登录

在 Deployment 分类开通服务并选择实例时长套餐。部署后打开管理页，使用账号本人的企业微信扫码；如需手机确认或其他登录步骤，打开远程桌面并输入该实例的桌面密码。API 凭据与桌面密码独立。登录资料保存在实例磁盘中，重建容器保留磁盘；删除磁盘会删除本地会话。

每个实例独立收费，按已购买的时长运行。REST / MCP 调用不按消息另行收费，实际价格以套餐页面为准。当前默认参考微信机器人的时长套餐，最终开放前需结合运行资源完成定价确认。

## API 与 MCP

使用管理页中的实例 API 地址，所有账号接口携带 `Authorization: Bearer &lt;实例 API token>`。这些路径属于专属实例，不是共享 API 网关。MCP 地址为实例地址加 `/mcp/`，使用相同 Bearer token。

| 接口 | 作用 |
| - | - |
| `GET /api/status`、`GET /api/auth/status` | 账号是否就绪与能力清单 |
| `GET /api/auth/qr` | 当前登录二维码 PNG Base64 |
| `GET /api/account` | 当前账号 |
| `GET /api/contacts?kind=all` | 内部同事与外部联系人，可指定 internal / external |
| `GET /api/conversations` | 本地会话，保留原始会话 ID |
| `GET /api/messages` | 本地同步消息；conversation\_id、after\_rowid、limit 参数 |
| `POST /api/search` | 联系人、会话与本地文本搜索 |
| `POST /api/messages` | 文本发送异步任务，必须提供 Idempotency-Key |
| `POST /api/messages/send` | 相同发送入口，支持单个或多个目标 |
| `GET /api/groups/{conversation_id}` | 本地同步的群信息及成员 |
| `GET /api/tasks` | 最近任务及各目标的结果 |
| `GET /api/tasks/{id}` | 查询发送结果 |
| `POST /api/tasks/{id}/cancel` | 取消尚未开始的任务 |
| `POST /api/runtime/pause`、`POST /api/runtime/resume` | 暂停自动化；本人验证后恢复 |
| `GET /api/diagnostics`、`GET /api/diagnostics/screenshot` | 实例状态与当前画面，均需鉴权 |
| `GET /api/events?after=0` | 可恢复游标的消息事件 |
| `WS /ws` | 消息事件流，Bearer 鉴权 |

发送体包含 `target`、`type: "text"` 和 `text`。`target` 接受会话 ID、联系人 ID、企业用户 ID 或唯一的完整名称；优先使用 ID；显示名称仍不能唯一定位时，实例会拒绝操作，不会猜测对象。没有本地会话的联系人会先通过客户端打开会话，并核对实际会话 ID 后发送。请求头 `Idempotency-Key` 是 8–128 位字母、数字或 `_.:-`。同一操作重复请求必须复用相同键和相同请求体。

将 `target` 换为 `targets` 数组可串行发送给 1–50 个明确指定的目标。两者不能同时提供。全部目标先完成身份解析，指向同一对象的不同别名会被拒绝。某一目标失败后停止后续发送，任务结果逐项记录 `succeeded`、`failed`、`unknown` 或 `not_attempted`；不要把部分成功当成全部成功。此流程还需在部署环境完成指定联系人的真实验收。

任务可能处于 queued、running、submitting、succeeded、failed、unknown 或 cancelled。`succeeded` 表示提交后在对应会话记录中找到了准确文本及服务器消息 ID，`delivered` 仍为 null，不代表对方已收到。unknown 表示结果不明确，请检查历史记录，不要用新键重复发送。实例不会自动重发中断的任务。

历史仅包含客户端已经同步的内容，不能保证全部历史。非文本消息可能返回 unknown 类型，附件下载尚未开放。事件保留最近 10,000 条，`gap` 表示游标已超出保留窗口。首次连接不会把旧历史当作新消息重播。

消息历史中的 `server_accepted` 和 `server_id` 可用于核对服务器是否已接受本地消息；仅出现本地记录而没有服务器 ID 时，不能认定发送成功。这些字段不代表接收方已收到或阅读。事件记录保留生成时的状态，查询当前确认状态应使用消息历史接口。

## 账号和凭据

仅登录本人有权操作的账号。将 API token 配置到可信应用中；它可访问该实例的账号数据。不要将密码、二维码或聊天截图发布到公共位置。暂停实例会中断实时事件。账号登出或手机端移除设备后，需要重新登录。

当前文本输入只支持单行，换行会在发送前明确拒绝。客户端要求安全验证或重新登录时，应由账号本人在远程桌面完成；实例不会绕过验证。验证中断后的任务可能返回 unknown，请先查询消息记录，不要以新幂等键重发。

识别到安全验证提示、账号退出或变更后，自动化队列会持久化暂停。完成手机验证后，可通过实例控制台“验证后恢复”继续尚未执行的任务；已经提交但结果不确定的任务不会重发。正常远程办公也可能触发企业微信安全验证。官方说明的验证后 24 小时不再锁定窗口，不代表已经消除检测，也不代表实例可以保证长期无人值守。


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.