工作手机SDK v3.0 - PHP客户端
存客宝后端直接使用此SDK调用工作手机服务。
接口全量目录:开发文档/5、接口/01-规范与统一层/工作手机API全量接口目录.md(328 路由)
存客宝 BFF 映射:存客宝BFF与工作手机SDK映射表.md
安装
方式1: Composer
composer require cunkebao/workphone-sdk
方式2: 手动安装
将 WorkPhoneClient.php 复制到 extend/Cunkebao/WorkPhone/ 目录。
快速开始
<?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', '打开微信给张三发消息:下午开会');
核心接口
发送消息(统一接口)
$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' // 实际使用的通道
]
快捷方法
// 微信
$sdk->wechatSend('device-001', '张三', '你好');
// 抖音
$sdk->douyinSend('device-001', '用户昵称', '感谢关注');
// 小红书
$sdk->xhsSend('device-001', '用户昵称', 'Hi~');
设备管理
// 获取所有设备
$devices = $sdk->getDevices();
// 获取在线设备
$onlineDevices = $sdk->getOnlineDevices();
// 检查设备是否在线
if ($sdk->isOnline('device-001')) {
// 设备在线
}
// 截图
$screenshot = $sdk->screenshot('device-001');
AI Agent(自然语言控制)
// 执行复杂任务
$result = $sdk->executeTask(
'device-001',
'打开淘宝搜索iPhone16并加入购物车'
);
// 获取Agent状态
$status = $sdk->getAgentStatus('device-001');
// 停止任务
$sdk->stopAgent('device-001');
底层控制
// 点击坐标
$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');
与存客宝集成
配置文件
// config/workphone.php
return [
'server_url' => env('WORKPHONE_URL', 'http://localhost:8899'),
'api_key' => env('WORKPHONE_KEY', 'workphone-secret-key-2026'),
];
替换原有代码
// ========== 原代码(调用奥创)==========
$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);
错误处理
$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 Agent(DroidRun) | 3 |
响应中的 channel_used 字段表示实际使用的通道。