surprise-tech / dingtalk_api
dingding/yida api
v0.0.7
2024-04-18 02:01 UTC
Requires
- php: >=8.2
- ext-bcmath: *
- alibabacloud/dingtalk: ^2.0
Requires (Dev)
- laravel/framework: >=10
- laravel/pint: ^1.10
- dev-main
- v0.0.7
- v0.0.6
- v0.0.5
- v0.0.4
- v0.0.3
- v0.0.2
- v0.0.1
- dev-dependabot/composer/league/commonmark-2.6.0
- dev-dependabot/composer/symfony/var-dumper-6.4.15
- dev-dependabot/composer/laravel/framework-10.48.23
- dev-dependabot/composer/symfony/http-foundation-6.4.14
- dev-dependabot/composer/symfony/process-6.4.14
This package is auto-updated.
Last update: 2025-03-10 00:32:42 UTC
README
安装
composer require surprise-tech/dingtalk_api
配置
'dingtalk' => [
'oa' => [
'appkey_**' => env('DINGTALK_OA_APP_KEY'),
'appsecret_**' => env('DINGTALK_OA_APP_SECRET'),
]
],
使用
// 发起审批
use SurpriseTech\DingtalkApi\Services\DingTalkServices;
use Carbon\Carbon;
$dingtalk = new DingTalkServices();
$list = [
[
'name' => '订单号',
'componentType' => 'TextField',
'id' => 'TextField-K2AD4O5B',
'value' => 'b' . time(),
],
];
$rs = $dingtalk->processCreate('processCode', $list);
echo "审批实例id: {$rs->body?->instanceId}";
// 获取审批id列表
$res = $dingtalk->processGetList(
'processCode',
bcmul(Carbon::now()->startOfMonth()->timestamp, 1000),
);
$list = $res->body?->result;
foreach ($list->list as $item) {
// 获取审批详情
$rs = $dingtalk->processGetInfo($item);
$info = $rs->body?->result;
dd($info->formComponentValues);
}
$dingtalk = new DingTalkServices('hy');
$data = getData($dingtalk, 'PROC--***', 1, $startTime, $endTime);
dd($data);
function getData($dingtalk, $processCode, $next, $startTime, $endTime, $user_id = null, $data = [])
{
$rs = $dingtalk->processGetList($processCode, $startTime, $endTime, $user_id, $next);
$list = $rs->body?->result?->list;
$data = array_merge($data, $list);
$nextToken = $rs->body?->result?->nextToken;
if (!empty($nextToken)) {
echo "下一页:{$nextToken} \n";
$data = getData($dingtalk, $processCode, $nextToken, $startTime, $endTime, $user_id, $data);
}
return $data;
}
echo "获取详情:\n";
foreach ($data as $key => $item) {
$rs = $dingtalk->processGetInfo($item);
echo "标题:{$rs->body?->result?->title} \n";
}