- Модуль: imbot
- Путь к файлу: ~/bitrix/modules/imbot/lib/bot/network.php
- Класс: BitrixImBotBotNetwork
- Вызов: Network::operatorMessageUpdate
static function operatorMessageUpdate($messageId, $messageFields)
{
if (!MainLoader::includeModule('im'))
{
return false;
}
$messageParamData = ImModelMessageParamTable::getList([
'select' => ['PARAM_VALUE'],
'filter' => ['=MESSAGE_ID' => $messageId, '=PARAM_NAME' => self::MESSAGE_PARAM_CONNECTOR_MID]
])->fetch();
if (!$messageParamData || $messageParamData['PARAM_VALUE'] != $messageFields['CONNECTOR_MID'])
{
return false;
}
$attach = null;
if (!empty($messageFields['ATTACH']))
{
$attach = CIMMessageParamAttach::getAttachByJson($messageFields['ATTACH']);
}
$keyboard = [];
if (!empty($messageFields['KEYBOARD']))
{
$keyboard = self::processIncomingKeyboard($messageFields);
}
if (!empty($messageFields['FILES']))
{
if (!$attach)
{
$attach = new CIMMessageParamAttach(null, CIMMessageParamAttach::CHAT);
}
foreach ($messageFields['FILES'] as $key => $value)
{
$attach->addFiles([[
'NAME' => $value['name'],
'LINK' => $value['link'],
'SIZE' => $value['size'],
]]);
}
}
$messageFields['URL_PREVIEW'] = isset($messageFields['URL_PREVIEW']) && $messageFields['URL_PREVIEW'] == 'N'? 'N': 'Y';
return ImBot::updateMessage(['BOT_ID' => $messageFields['BOT_ID']], [
'MESSAGE_ID' => $messageId,
'DIALOG_ID' => $messageFields['DIALOG_ID'],
'MESSAGE' => $messageFields['MESSAGE'],
'URL_PREVIEW' => $messageFields['URL_PREVIEW'],
'KEYBOARD' => $keyboard,
'ATTACH' => $attach,
'SKIP_CONNECTOR' => 'Y',
'EDIT_FLAG' => 'Y',
]);
}