|
|
|
<?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)
|
|
|
|
{
|
|
|
|
$endpoint = '/v1/danliao';
|
|
|
|
$payload = [
|
|
|
|
"appKey" => $this->appKey,
|
|
|
|
"appSecret" => $this->appSecret,
|
|
|
|
"robotCode" => $this->robotCode,
|
|
|
|
"msg_param" => $text,
|
|
|
|
"user_ids" => $user_ids
|
|
|
|
];
|
|
|
|
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);
|
|
|
|
}
|
|
|
|
|
|
|
|
} |
...
|
...
|
|