* adjust for feishu webhook.

This commit is contained in:
wangyidong
2021-01-29 13:15:50 +08:00
committed by Yagami
parent a1c238496d
commit d3669d6ee5
10 changed files with 91 additions and 29 deletions

View File

@@ -55,17 +55,58 @@ class feishuapi
public function getAllUsers()
{
set_time_limit(0);
$users = array();
$response = $this->queryAPI($this->apiUrl . "contact/v3/users", json_encode(array('department_id' => 0)), array(CURLOPT_CUSTOMREQUEST => "GET"));
if(isset($response->data->items))
$users = array();
$depts = $this->getDepts();
foreach($depts as $deptID => $count)
{
foreach($response->data->items as $user) $users[$user->name] = $user->open_id;
if($deptID and empty($count)) continue;
$pageToken = '';
while(true)
{
$response = $this->queryAPI($this->apiUrl . "contact/v3/users?department_id={$deptID}" . ($pageToken ? "&page_token={$pageToken}" : ''), '', array(CURLOPT_CUSTOMREQUEST => "GET"));
if(isset($response->data->items))
{
foreach($response->data->items as $user) $users[$user->name] = $user->open_id;
}
if(!isset($response->data->page_token)) break;
$pageToken = $response->data->page_token;
}
}
return array('result' => 'success', 'data' => $users);
}
/**
* Get depts.
*
* @access public
* @return array
*/
public function getDepts()
{
set_time_limit(0);
$depts = array('0' => '0');
$pageToken = '';
while(true)
{
$response = $this->queryAPI($this->apiUrl . "contact/v3/departments?parent_department_id=0" . ($pageToken ? "&page_token={$pageToken}" : '') . "&fetch_child=true", '', array(CURLOPT_CUSTOMREQUEST => "GET"));
if(isset($response->data->items))
{
foreach($response->data->items as $dept) $depts[$dept->open_department_id] = $dept->member_count;
}
if(!isset($response->data->page_token)) break;
$pageToken = $response->data->page_token;
}
return $depts;
}
/**
* Send message
*