maxim-oleinik / gravitel
Gravitel API 的 PHP 客户端
0.2.0
2019-01-09 09:27 UTC
Requires
- ext-json: *
Requires (Dev)
- phpunit/phpunit: 5.*
This package is auto-updated.
Last update: 2024-09-09 22:01:47 UTC
README
文档版本 2017-08
安装
-
添加到
composer
composer require maxim-oleinik/gravitel
-
实现 \Gravitel\TransportInterface
class MyHttpTransport implements \Gravitel\TransportInterface
发送命令
输出命令列表
-
发起通话
/** * @param string $user - Логин оператора * @param string $phone - Номер телефона куда звоним * @param string $phoneExt - Номер исходящего телефона для АОН */ \Gravitel\Gravitel::makeCall($user, $phone, $phoneExt = null): \Gravitel\Response\MakeCallResponse`
-
获取组列表
\Gravitel\Gravitel::groups(): \Gravitel\Response\Group[]
-
启用或禁用员工在其所有部门中接听电话
\Gravitel\Gravitel::subscribeOnCalls($user, $enable, $groupId = null)
调用和错误处理
$gravitel = new Gravitel(new MyHttpTransport, $gravitelApiUrl, $gravitelApiToken);
try {
$response = $gravitel->makeCall($login, $phone);
} catch (\Gravitel\Error $e) {
$e->getCode(); // 400, 401, 500
$e->getMessage();
$e->getDebugInfo();
}
回调
处理来自 Gravitel 的入站请求
$cmd = \Gravitel\Callback\CallbackFactory::make($_REQUEST);
// Проверка токена (Авторизация)
if ($cmd->crm_token != $myPrivateToken) {
throw new \InvalidArgumentException(__METHOD__.": Token invalid `{$cmd->crm_token}`");
}
switch (get_class($cmd)) {
case \Gravitel\Callback\HistoryCmd::class:
// ...
break;
case \Gravitel\Callback\EventCmd::class:
// ...
break;
case \Gravitel\Callback\ContactCmd::class:
// ...
break;
default:
break;
}