DingTalkService.php
2.1 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
<?php
namespace App\Services;
use App\DingDepartment;
use App\DingUser;
/**
* 文档 https://apihub.cmer.com/docs/cmerdingtalk.html
*/
class DingTalkService
{
protected $appKey;
protected $appSecret;
protected $robotCode;
protected $headers = [];
protected $bashUrl = 'https://api.cmer.com';
public function __construct()
{
$this->appKey = env('DING_TALK_APP_KEY');
$this->appSecret = env('DING_TALK_APP_SECRET');
$this->robotCode = env('DING_TALK_APP_KEY');
$this->headers = [
"Content-Type" => "application/json",
"apikey" => "UkzZljFv83Z2qBi5YR1o3f2otAVWtug6",
"X-CmerApi-Host" => "cmerdingtalk.p.cmer.com",
];
}
/** 发起请求 */
public function send_request(string $method, string $url, array $payload = [], array $params = [])
{
$client = new \GuzzleHttp\Client();
$options = [
'headers' => $this->headers,
'json' => $payload
];
if (!empty($params))
$options['query'] = $params;
$response = $client->request($method, $url, $options);
return $response;
}
/** 批量发送私聊消息 */
public function danliao(string $text, array $user_ids, string $msg_key='sampleMarkdown')
{
$endpoint = '/v1/danliao';
$payload = [
"appKey" => $this->appKey,
"appSecret" => $this->appSecret,
"robotCode" => $this->robotCode,
"msg_param" => $text,
"user_ids" => $user_ids,
"msg_key" => $msg_key
];
return $this->send_request('POST', $this->bashUrl . $endpoint, $payload);
}
/** 批量发送Ding */
public function danliao_ding(string $text, array $user_ids)
{
$endpoint = '/v1/danliao_ding';
$payload = [
"appKey" => $this->appKey,
"appSecret" => $this->appSecret,
"robotCode" => $this->robotCode,
"content" => $text,
"receiver_user_id_list" => $user_ids
];
return $this->send_request('POST', $this->bashUrl . $endpoint, $payload);
}
}