MyChat Integration API: MCIAPI_CS_GetWebSupportGroupUsersList получить список пользователей группы WEB-поддержки на сайт
Получить список UIN-ов пользователей для указанной группы WEB-поддержки на сайт.
Синтаксис
{
  "cmd"       : "0015",
  "ServerKey" : "iddqd",
  "APIStype"  : "mydata",
  "context"   : "myfunc",
  "ID"        : 1
}
Параметры
| 
    Параметр  | 
  
    Тип  | 
  
    Значение  | 
 
| 
    cmd  | 
  
    string  | 
  
    "0015", номер команды MCIAPI_CS_GetWebSupportGroupUsersList;  | 
 
| 
    ServerKey  | 
  
    string  | 
  
    ключ Integration API, задаётся в настройках сервера;  | 
 
| 
    APIStype  | 
  
    string  | 
  
    тип интеграции. Можно задавать произвольную строку;  | 
 
| 
    context  | 
  
    string  | 
  
    необязательный параметр, любой текст, который вернётся в ответной команде;  | 
 
| 
    ID  | 
  
    integer  | 
  
    числовой идентификатор группы WEB-поддержки, можно увидеть в списке групп в разделе админки "Инструменты", "Web-поддержка на сайт".  | 
 
Результат работы
{
  "cmd"  : "0015",
  "ID"   : 1
  "UINS" : "21,13,6"
}
| 
    Поле  | 
  
    Тип  | 
  
    Значение  | 
 
| 
    cmd  | 
  
    string  | 
  
    номер команды, которая была успешно выполнена (HEX 0015);  | 
 
| 
    context  | 
  
    string  | 
  
    произвольный текст, который был передан серверу в команде запроса;  | 
 
| 
    ID  | 
  
    integer  | 
  
    идентификатор группы web-поддержки;  | 
 
| 
    UINS  | 
  
    string  | 
  
    список числовых идентификаторов пользователей, через запятую.  | 
 
Пример использования на языке PHP
Скрипт получает список пользователей из указанной группы, затем получает их статусы и подключается к одному из онлайн-пользователей. Если все пользователи офлайн — подключение производится к любому из списка, в случайном порядке.
<?php
$host = 'mychat-server.com';
$portWEB = '443';
$isUseHttps = true;
$integrationAPIKey = 'secretKey';
$toolName = 'php';
$protocol = ($isUseHttps ? 'https' : 'http');
$getUsersByGroupID = '0015';
$getUsersStatesList = '000F';
$groupID = 1;
$URL = $protocol.'://'.$host.':'.$portWEB.'/API/?data=';
$jsonGetUsers = urlencode(json_encode(array('cmd'=>$getUsersByGroupID, 'ID' =>$groupID, 'APIStype'=>$toolName, 'ServerKey'=>$integrationAPIKey)));
$usersResult = file_get_contents($URL . $jsonGetUsers);
$jsonUsers = json_decode($usersResult, true);
$users = $jsonUsers['UINS'];
$jsonGetUsersStates = urlencode(json_encode(array('cmd'=>$getUsersStatesList, 'UINS' =>$users, 'APIStype'=>$toolName, 'ServerKey'=>$integrationAPIKey)));
$statesResult = json_decode(file_get_contents($URL . $jsonGetUsersStates), true);
if(isset($statesResult['Error'])){
 echo 'Error=' . $statesResult['Error']; 
}else if(isset($statesResult['Statuses'])){
 $UINS = explode(',', $statesResult['UINS']);
 $states = explode(',', $statesResult['Statuses']);
 $onlines = array();
 for($i = 0; $i < count($states); $i++){
  if($states[$i] != -1){
   array_push($onlines, $UINS[$i]); 
  }
 }
 $target = (empty($onlines) ? $UINS[array_rand($UINS)] : $onlines[array_rand($onlines)]);
 $result = $protocol.'://'.$host.':'.$portWEB.'/support/?uin='.$target;
 header("Location: ".$result);
 exit();
}
?>
Возможные ошибки
#5, MCIAPI_Error_WrongIntegrationKey
#10, MCIAPI_Error_ParameterAbsent
#50, MCIAPI_Error_WebSupportGroupIDNotExists
Ещё посмотреть
Created with the Personal Edition of HelpNDoc: Produce Kindle eBooks easily