• Модуль: imbot
  • Путь к файлу: ~/bitrix/modules/imbot/lib/bot/marta.php
  • Класс: BitrixImBotBotMarta
  • Вызов: Marta::sendAnswerCommand
static function sendAnswerCommand($messageId, $messageFields)
{
	$attach = Array();
	if (!empty($messageFields['ATTACH']))
	{
		$attach = CIMMessageParamAttach::GetAttachByJson($messageFields['ATTACH']);
	}

	$keyboard = Array();
	if (!empty($messageFields['KEYBOARD']))
	{
		$keyboard = Array('BOT_ID' => self::getBotId());
		if (!isset($messageFields['KEYBOARD']['BUTTONS']))
		{
			$keyboard['BUTTONS'] = $messageFields['KEYBOARD'];
		}
		else
		{
			$keyboard = $messageFields['KEYBOARD'];
		}
		$keyboard = BitrixImBotKeyboard::getKeyboardByJson($keyboard);
	}

	$messageParams = Array(
		'DIALOG_ID' => $messageFields['DIALOG_ID'],
		'MESSAGE' => $messageFields['MESSAGE_ANSWER'],
		'ATTACH' => $attach,
		'KEYBOARD' => $keyboard
	);

	if ($messageFields['COMMAND_ID'] > 0)
	{
		if ($messageFields['COMMAND_CONTEXT'] == 'KEYBOARD')
		{
			CIMMessageParam::Set($messageFields['MESSAGE_ID'], Array('KEYBOARD' => $keyboard? $keyboard: 'N', 'ATTACH' => $attach? $attach: Array()));

			if (!empty($messageParams['MESSAGE']))
			{
				CIMMessenger::Update($messageFields['MESSAGE_ID'], $messageParams['MESSAGE'], true, false, self::getBotId());
			}

			CIMMessageParam::SendPull($messageFields['MESSAGE_ID'], Array('KEYBOARD', 'ATTACH'));
		}
		else
		{
			BitrixImCommand::addMessage(Array('MESSAGE_ID' => $messageFields['MESSAGE_ID'], 'COMMAND_ID' => $messageFields['COMMAND_ID']), $messageParams);
		}
	}
	else
	{
		BitrixImBot::addMessage(Array('BOT_ID' => self::getBotId()), $messageParams);
	}
}