28  /  46

Работа с чатами

Просмотров: 3684 (Статистика ведётся с 06.02.2017)

Обратите внимание! Все методы указаны с использованием функции restCommand - это метод отправки данных в Битрикс24, данный метод есть в примере ЭхоБота, и представлен здесь в качестве примера. Вы можете использовать свою функцию или javascript-метод BX24.callMethod или bitrix24-php-sdk.


Создание чата

Rest-метод: im.chat.add

Вызов метода:
$result = restCommand('im.chat.add', Array(

   'TYPE' => 'CHAT' // OPEN - открытый для вступления чат, CHAT - обычный чат по приглашениям, по-умолчанию CHAT
   'TITLE' => 'Мой новый закрытый чат', // Заголовок чата
   'DESCRIPTION' => 'Очень важный чат', // Описание чата
   'COLOR' => 'PINK', // Цвет чата для мобильного приложения - RED, GREEN, MINT, LIGHT_BLUE, DARK_BLUE, PURPLE, AQUA, PINK, LIME, BROWN,  AZURE, KHAKI, SAND, MARENGO, GRAY, GRAPHITE
   'MESSAGE' => 'Добро пожаловать в чат', // Первое приветственное сообщение в чате
   'USERS' => Array(1,2), // Участники чата (обяз.)
   'AVATAR' => '/* base64 image */', // Аватар чата в base64 формате
   'ENTITY_TYPE' => 'CHAT', // Идентификатор произвольной сущности (например CHAT, CRM, OPENLINES, CALL и тд), может быть использован для поиска чата и для легкого определения контекста в обработчиках событий ONIMBOTMESSAGEADD, ONIMBOTMESSAGEUPDATE, ONIMBOTMESSAGEDELETE
   'ENTITY_ID' => 13, // Числовой идентификатор сущности, может быть использован для поиска чата и для легкого определения контекста в обработчиках событий ONIMBOTMESSAGEADD, ONIMBOTMESSAGEUPDATE, ONIMBOTMESSAGEDELETE
   'OWNER_ID' => 39, // Идентификатор владельца чата. Можно не указывать, если вы создаете чат под нужным пользователем

), $_REQUEST["auth"]);
Обязательные поля: USERS (участники чата).

Результат выполнения: числовой идентификатор чата CHAT_ID или ошибка.

Возможные ошибки:

Код ошибкиОписание ошибки
USERS_EMPTY Не переданы участники чата.
WRONG_REQUEST Что то пошло не так.


Получение списка участников

Rest-метод: im.chat.user.list

Вызов метода:
$result = restCommand('im.chat.user.list', Array(

   'CHAT_ID' => 13 // Идентификатор чата

), $_REQUEST["auth"]);
Результат выполнения: массив идентификаторов участников или ошибка.

Возможные ошибки:

Код ошибкиОписание ошибки
CHAT_ID_EMPTY Не передан идентификатор чата.


Приглашение участников

Rest-метод: im.chat.user.add

Вызов метода:
$result = restCommand('im.chat.user.add', Array(

   'CHAT_ID' => 13 // Идентификатор чата
   'USERS' => Array(3,4) // Идентификаторы новых пользователей

), $_REQUEST["auth"]);
Результат выполнения: true или ошибка.

Возможные ошибки:

Код ошибкиОписание ошибки
CHAT_ID_EMPTY Не передан идентификатор чата.
WRONG_REQUEST У вас недостаточно прав для добавления участника в чат или участник уже состоит в чате.


Исключение участников

Rest-метод: im.chat.user.delete

Вызов метода:
$result = restCommand('im.chat.user.delete', Array(

   'CHAT_ID' => 13 // Идентификатор чата
   'USER_ID' => 4 // Идентификатор исключаемого пользователя

), $_REQUEST["auth"]);
Результат выполнения: true или ошибка.

Возможные ошибки:

Код ошибкиОписание ошибки
CHAT_ID_EMPTY Не передан идентификатор чата.
USER_ID_EMPTY Не передан идентификатор пользователя.
WRONG_REQUEST У вас недостаточно прав для добавления участника в чат или участник уже состоит в чате.


Покинуть чат

Rest-метод: im.chat.leave

Вызов метода:
$result = restCommand('im.chat.leave', Array(

   'CHAT_ID' => 13 // Идентификатор чата

), $_REQUEST["auth"]);
Результат выполнения: true или ошибка.

Возможные ошибки:

Код ошибкиОписание ошибки
CHAT_ID_EMPTY Не передан идентификатор чата.
WRONG_REQUEST Вы не состоите в этом чате.


Отправка статуса «вам пишут...»

Rest-метод: im.chat.sendTyping

Вызов метода:
$result = restCommand('im.chat.sendTyping', Array(

   'CHAT_ID' => 13 // Идентификатор чата

), $_REQUEST["auth"]);
Результат выполнения: true или ошибка.

Возможные ошибки:

Код ошибкиОписание ошибки
CHAT_ID_EMPTY Не передан идентификатор чата.
ACCESS_ERROR У вас недостаточно прав для отправки статуса в этот чат.


Обновление заголовка чата

Rest-метод: im.chat.updateTitle

Вызов метода:
$result = restCommand('im.chat.updateTitle', Array(

   'CHAT_ID' => 13 // Идентификатор чата
   'TITLE' => 'Новое имя для чата' // Новый заголовок

), $_REQUEST["auth"]);
Результат выполнения: true или ошибка.

Возможные ошибки:

Код ошибкиОписание ошибки
CHAT_ID_EMPTY Не передан идентификатор чата.
TITLE_EMPTY Не передан новый заголовок чата.
WRONG_REQUEST Заголовок уже установлен или указанный чат не существует.


Обновление цвета чата

Rest-метод: im.chat.updateColor

Вызов метода:
$result = restCommand('im.chat.updateColor', Array(

   'CHAT_ID' => 13 // Идентификатор чата
   'COLOR' => 'MINT' // Цвет чата для мобильного приложения - RED,  GREEN, MINT, LIGHT_BLUE, DARK_BLUE, PURPLE, AQUA, PINK, LIME, BROWN,  AZURE, KHAKI, SAND, MARENGO, GRAY, GRAPHITE

), $_REQUEST["auth"]);
Результат выполнения: true или ошибка.

Возможные ошибки:

Код ошибкиОписание ошибки
CHAT_ID_EMPTY Не передан идентификатор чата.
WRONG_COLOR Цвет не входит в список доступных цветов.
WRONG_REQUEST Цвет уже установлен или указанный чат не существует.


Обновление аватара чата

Rest-метод: im.chat.updateAvatar

Вызов метода:
$result = restCommand('im.chat.updateAvatar', Array(

   'CHAT_ID' => 13 // идентификатор чата
   'AVATAR' => '/* base64 image */' // Изображение в формате base64

), $_REQUEST["auth"]);
Результат выполнения: true или ошибка.

Возможные ошибки:

Код ошибкиОписание ошибки
CHAT_ID_EMPTY Не передан идентификатор чата.
AVATAR_ERROR Передан не корректный формат изображения.
WRONG_REQUEST Чат не существует.


Смена владельца чата

Rest-метод: im.chat.setOwner

Вызов метода:
$result = restCommand('im.chat.setOwner', Array(

   'CHAT_ID' => 13 // Идентификатор чата
   'USER_ID' => '2' // Идентификатор нового владельца чата

), $_REQUEST["auth"]);
Результат выполнения: true или ошибка.

Возможные ошибки:

Код ошибкиОписание ошибки
CHAT_ID_EMPTY Не передан идентификатор чата.
USER_ID_EMPTY Не передан идентификатор нового владельца чата.
WRONG_REQUEST Метод вызван не владельцем чата или указанный пользователь не является участником чата.


Получение идентификатора чата

Rest-метод: im.chat.get

Вызов метода:
$result = restCommand('im.chat.get', Array(

   'ENTITY_TYPE' => 'OPEN', // Идентификатор произвольной сущности (например CHAT, CRM, OPENLINES, CALL и тд), может быть использован для поиска чата и для легкого определения контекста в обработчиках событий ONIMBOTMESSAGEADD, ONIMBOTMESSAGEUPDATE, ONIMBOTMESSAGEDELETE (обяз.)
   'ENTITY_ID' => 13, // Числовой идентификатор сущности, может быть использован для поиск чата и для легкого определения контекста в обработчиках событий ONIMBOTMESSAGEADD, ONIMBOTMESSAGEUPDATE, ONIMBOTMESSAGEDELETE (обяз.)
   
), $_REQUEST["auth"]);
Обязательные поля:
ENTITY_TYPE - идентификатор произвольной сущности (например CHAT, CRM, OPENLINES, CALL и тд), может быть использован для поиска чата и для легкого определения контекста в обработчиках событий ONIMBOTMESSAGEADD, ONIMBOTMESSAGEUPDATE, ONIMBOTMESSAGEDELETE.
ENTITY_ID - числовой идентификатор сущности, может быть использован для поиска чата и для легкого определения контекста в обработчиках событий ONIMBOTMESSAGEADD, ONIMBOTMESSAGEUPDATE, ONIMBOTMESSAGEDELETE.

Результат выполнения: возвращает идентификатор чата CHAT_ID или null.


0
Курсы разработаны в компании «1С-Битрикс»