Files
workphone-sdk/sdk/php-sdk/README.md
Manus AI becd65bc46 docs(接口): 328 路由全量目录、存客宝对接图与 OpenAPI 重导出
补齐 5、接口 全量索引、BFF 映射表、分类浏览 HTML 与冒烟脚本;同步 php/ts SDK AI Brain 四方法;openapi 315 paths 从 main.py 导出。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-24 09:31:13 +08:00

198 lines
4.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 工作手机SDK v3.0 - PHP客户端
存客宝后端直接使用此SDK调用工作手机服务。
> **接口全量目录**[开发文档/5、接口/01-规范与统一层/工作手机API全量接口目录.md](../../开发文档/5、接口/01-规范与统一层/工作手机API全量接口目录.md)328 路由)
> **存客宝 BFF 映射**[存客宝BFF与工作手机SDK映射表.md](../../开发文档/5、接口/02-业务对接/存客宝BFF与工作手机SDK映射表.md)
## 安装
### 方式1: Composer
```bash
composer require cunkebao/workphone-sdk
```
### 方式2: 手动安装
`WorkPhoneClient.php` 复制到 `extend/Cunkebao/WorkPhone/` 目录。
## 快速开始
```php
<?php
use Cunkebao\WorkPhone\WorkPhoneClient;
// 初始化
$sdk = new WorkPhoneClient(
'http://localhost:8899', // SDK服务器地址
'workphone-secret-key-2026' // API密钥
);
// 发送微信消息
$result = $sdk->sendMessage('device-001', 'wechat', '张三', '你好');
// 发送抖音私信
$result = $sdk->sendMessage('device-001', 'douyin', '用户昵称', '感谢关注');
// 执行AI任务
$result = $sdk->executeTask('device-001', '打开微信给张三发消息:下午开会');
```
## 核心接口
### 发送消息(统一接口)
```php
$result = $sdk->sendMessage(
'device-001', // 设备ID
'wechat', // 平台: wechat/douyin/xhs
'wxid_xxx', // 接收者
'消息内容', // 内容
'text' // 类型: text/image
);
// 响应
[
'code' => 200,
'data' => [
'success' => true,
'message_id' => 'wx_1234567890'
],
'channel_used' => 'sdk_control' // 实际使用的通道
]
```
### 快捷方法
```php
// 微信
$sdk->wechatSend('device-001', '张三', '你好');
// 抖音
$sdk->douyinSend('device-001', '用户昵称', '感谢关注');
// 小红书
$sdk->xhsSend('device-001', '用户昵称', 'Hi~');
```
### 设备管理
```php
// 获取所有设备
$devices = $sdk->getDevices();
// 获取在线设备
$onlineDevices = $sdk->getOnlineDevices();
// 检查设备是否在线
if ($sdk->isOnline('device-001')) {
// 设备在线
}
// 截图
$screenshot = $sdk->screenshot('device-001');
```
### AI Agent自然语言控制
```php
// 执行复杂任务
$result = $sdk->executeTask(
'device-001',
'打开淘宝搜索iPhone16并加入购物车'
);
// 获取Agent状态
$status = $sdk->getAgentStatus('device-001');
// 停止任务
$sdk->stopAgent('device-001');
```
### 底层控制
```php
// 点击坐标
$sdk->click('device-001', 500, 1000);
// 点击文字
$sdk->clickText('device-001', '发送');
// 输入
$sdk->input('device-001', 'Hello World');
// 滑动
$sdk->swipe('device-001', 'up');
// 获取UI树
$uiTree = $sdk->getUiTree('device-001');
```
## 与存客宝集成
### 配置文件
```php
// config/workphone.php
return [
'server_url' => env('WORKPHONE_URL', 'http://localhost:8899'),
'api_key' => env('WORKPHONE_KEY', 'workphone-secret-key-2026'),
];
```
### 替换原有代码
```php
// ========== 原代码(调用奥创)==========
$signInData = [
"cmdType" => "CmdSendMsg",
"wechatAccountId" => $wechatId,
"toWxid" => $toWxid,
"content" => $content,
];
$this->client->send(json_encode($signInData));
// ========== 新代码调用自有SDK==========
$sdk = new WorkPhoneClient(
config('workphone.server_url'),
config('workphone.api_key')
);
$result = $sdk->sendMessage($deviceId, 'wechat', $toWxid, $content);
```
## 错误处理
```php
$result = $sdk->sendMessage(...);
if ($result['code'] !== 200) {
// 处理错误
$error = $result['message'];
switch ($result['code']) {
case 503:
// 设备不在线
break;
case 408:
// 超时
break;
case 400:
// 参数错误
break;
}
}
```
## 通道说明
SDK会自动选择最优通道
| 通道 | 说明 | 优先级 |
|------|------|:---:|
| official_api | 官方API抖音等 | 1 |
| sdk_control | SDK控制uiautomator2 | 2 |
| ai_agent | AI AgentDroidRun | 3 |
响应中的 `channel_used` 字段表示实际使用的通道。