usava / mango-office-api
用于操作mango-office.ru API的库
dev-master
2018-09-11 14:38 UTC
Requires
- php: >=5.5.9
- nesbot/carbon: ^1.21
- symfony/http-foundation: ^4.0
This package is auto-updated.
Last update: 2024-09-12 03:59:38 UTC
README
# 用于操作mango-office.ru API的库
## 安装
composer require sharoff/mango-office-api
## 初始化 为了简单快速地初始化,创建了一个Helper,其中包含一个处理API的类实例。为了初始化脚本,需要设置API密钥和解密密钥。
// Подключаем автолоад
require __DIR__ . '/../vendor/autoload.php';
// Просто для короткой записи
use Sharoff\Mango\Api\MangoHelper;
// Задание API ключа и ключа шифрования
MangoHelper::setApiKey('*********************************')
->setApiSalt('*********************************');
为了方便使用,创建了一个PHP DOC,它允许在IDE中进行自动补全
## 获取数据 Mango-office通过访问特定的URL地址。每个地址都在文档中规定(http://www.mango-office.ru/upload/api/MangoOffice_VPBX_API_v1.3.pdf)。该库可以帮助验证曼果的签名,如果出现错误,将以json格式、所需代码和头部做出响应。获取数据只需在初始化后执行一行
$data = MangoHelper::getMethodData();
变量 $data 将包含从曼果获得的json_decode数据。
## 发起通话 为了发起通话,只需要知道员工的内部号码和您想拨打的号码。
$data = MangoHelper::sendCall('10', '7912*******');
## 结束通话 为了结束通话,需要执行以下命令
MangoHelper::sendCallHangup($command_id, $call_id)
其中 $command_id 和 $call_id 将在通话时提供
## 获取统计数据 执行命令后,将得到一个包含 MangoOfficeStat 对象的数组,您可以使用它通过自动补全获取所需的参数。对象的格式与 $fields 相同
$stats = MangoHelper::getStat($date_from, $date_to, $from = 0, $from_number = null, $to = null, $to_number = null, $fields = null, $request_id = null);
foreach ($stats as $stat) {
/** @var \Sharoff\Mango\Api\MangoOfficeStat $stat */
echo $stat->start->format('d.m.Y H:i:s') . PHP_EOL;
}
### 默认参数 $fields
$fields = [
'records',
'start',
'finish',
'from_extension',
'from_number',
'to_extension',
'to_number',
'disconnect_reason'
];
### 可用字段 $fields 和字段格式
$available_fields = [
// Массив с идентификаторами записей
'records' => 'array',
// Будет в объекте Carbon
'start' => 'timestamp',
// Будет в объекте Carbon
'finish' => 'timestamp',
// строка
'from_extension' => 'string',
// строка
'from_number' => 'string',
// строка
'to_extension' => 'string',
// строка
'to_number' => 'string',
// строка
'disconnect_reason' => 'string',
// строка
'entry_id' => 'string',
];