PHP code example of call-center / php-sdk
1. Go to this page and download the library: Download call-center/php-sdk library . Choose the download type require .
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
call-center / php-sdk example snippets
allCenter\SDK\CallCenterSDK;
// 初始化SDK
$sdk = new CallCenterSDK('http://127.0.0.1:8200');
// 生成Token
$tokenData = $sdk->token()->generate(
'your_app_key', // 应用密钥
'your_app_secret', // 应用机密
3600 // 过期时间(秒),可选,默认3600
);
// 获取Token字符串
$token = $tokenData['token'];
// 设置Token到SDK(后续API调用将使用此Token)
$sdk->setToken($token);
try {
$taskData = [
'callee' => [
'phone' => '13800138000', // 被叫电话号码(必填)
'name' => '张三' // 被叫姓名(可选)
],
'caller' => [
'user_id' => 'USER123' // 主叫用户ID(必填)
],
'biz_id' => 'BIZ123456', // 业务ID(可选)
'business_type' => 'normal', // 业务类型:normal|marketing|notification|verification(可选)
'adapter_name' => 'sflai', // 适配器名称(可选,默认sflai)
'template_code' => 'TEMPLATE001', // 模板代码(可选)
'schedule_at' => '2023-01-01T12:00:00Z', // 计划执行时间(可选)
'metadata' => [ // 元数据(可选)
'key' => 'value'
]
];
$result = $sdk->task()->create($taskData);
$taskId = $result['task_id'];
echo "任务创建成功,任务ID: {$taskId}\n";
} catch (\CallCenter\SDK\Exception\ApiException $e) {
echo "API错误: {$e->getMessage()}\n";
echo "错误代码: {$e->getCode()}\n";
} catch (\CallCenter\SDK\Exception\NetworkException $e) {
echo "网络错误: {$e->getMessage()}\n";
}
try {
$result = $sdk->task()->list(1, 20); // 第1页,每页20条
$tasks = $result['tasks'];
$pagination = $result['pagination'];
echo "共 {$pagination['total']} 条任务,当前第 {$pagination['page']} 页\n";
foreach ($tasks as $task) {
echo "任务ID: {$task['id']}, 状态: {$task['status']}\n";
}
} catch (\CallCenter\SDK\Exception\ApiException $e) {
echo "错误: {$e->getMessage()}\n";
}
try {
$status = $sdk->task()->getStatus('task1234567890');
echo "任务ID: {$status['task_id']}\n";
echo "状态: {$status['status']}\n";
echo "是否成功: " . ($status['success'] ? '是' : '否') . "\n";
} catch (\CallCenter\SDK\Exception\ApiException $e) {
echo "错误: {$e->getMessage()}\n";
}
try {
$result = $sdk->task()->cancel('task1234567890');
echo "取消成功: {$result['msg']}\n";
} catch (\CallCenter\SDK\Exception\ApiException $e) {
echo "错误: {$e->getMessage()}\n";
}
try {
$result = $sdk->task()->getRecords('task1234567890', 1, 20);
$records = $result['records'];
$pagination = $result['pagination'];
echo "共 {$pagination['total']} 条通话记录\n";
foreach ($records as $record) {
echo "记录ID: {$record['id']}\n";
echo "通话时长: {$record['duration']} 秒\n";
echo "开始时间: {$record['start_at']}\n";
echo "结果: {$record['result_msg']}\n";
if (isset($record['record_file_url'])) {
echo "录音文件: {$record['record_file_url']}\n";
}
echo "---\n";
}
} catch (\CallCenter\SDK\Exception\ApiException $e) {
echo "错误: {$e->getMessage()}\n";
}
allCenter\SDK\CallCenterSDK;
use CallCenter\SDK\Exception\ApiException;
use CallCenter\SDK\Exception\NetworkException;
// 1. 初始化SDK
$sdk = new CallCenterSDK('http://127.0.0.1:8200');
try {
// 2. 生成Token
$tokenData = $sdk->token()->generate('your_app_key', 'your_app_secret');
$sdk->setToken($tokenData['token']);
echo "Token生成成功\n";
// 3. 创建外呼任务
$taskData = [
'callee' => [
'phone' => '13800138000',
'name' => '张三'
],
'caller' => [
'user_id' => 'USER123'
],
'biz_id' => 'BIZ123456',
'business_type' => 'normal'
];
$createResult = $sdk->task()->create($taskData);
$taskId = $createResult['task_id'];
echo "任务创建成功,任务ID: {$taskId}\n";
// 4. 查询任务状态
sleep(2); // 等待一下
$status = $sdk->task()->getStatus($taskId);
echo "任务状态: {$status['status']}\n";
// 5. 获取通话记录
$records = $sdk->task()->getRecords($taskId);
echo "通话记录数量: " . count($records['records']) . "\n";
// 6. 获取任务列表
$taskList = $sdk->task()->list(1, 10);
echo "任务总数: {$taskList['pagination']['total']}\n";
} catch (ApiException $e) {
echo "API错误 [{$e->getCode()}]: {$e->getMessage()}\n";
$responseData = $e->getResponseData();
if (!empty($responseData)) {
print_r($responseData);
}
} catch (NetworkException $e) {
echo "网络错误: {$e->getMessage()}\n";
} catch (\Exception $e) {
echo "未知错误: {$e->getMessage()}\n";
}
[
'token' => 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...',
'expires_at' => 'Sun, 01 Jan 2023 01:00:00 GMT'
]
[
'task_id' => 'd2c9c8f0-1234-5678-9abc-def012345678'
]
[
'tasks' => [...],
'pagination' => [
'page' => 1,
'page_size' => 20,
'pages' => 1,
'total' => 1
]
]
[
'task_id' => 'task1234567890',
'status' => 'pending',
'success' => true
]
[
'records' => [...],
'pagination' => [...]
]
try {
$result = $sdk->task()->create($taskData);
} catch (\CallCenter\SDK\Exception\ApiException $e) {
// API业务错误
echo "错误代码: {$e->getCode()}\n";
echo "错误消息: {$e->getMessage()}\n";
$responseData = $e->getResponseData(); // 获取原始响应数据
} catch (\CallCenter\SDK\Exception\NetworkException $e) {
// 网络错误
echo "网络错误: {$e->getMessage()}\n";
}
$sdk->getClient()->setHttpOptions([
CURLOPT_SSL_VERIFYPEER => false,
CURLOPT_SSL_VERIFYHOST => false,
]);
$sdk->getClient()->setTimeout(60); // 60秒超时
$client = $sdk->getClient();
$response = $client->get('/api/custom/endpoint', ['param' => 'value']);