Отримати список 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

#9, MCIAPI_Error_API_Disabled

#10, MCIAPI_Error_ParameterAbsent

#21, MCIAPI_Error_WrongData

#50, MCIAPI_Error_WebSupportGroupIDNotExists

 

Дивитися ще

MCIAPI_CS_GetUsersStatusList