• Модуль: imbot
  • Путь к файлу: ~/bitrix/modules/imbot/lib/bot/giphy.php
  • Класс: BitrixImBotBotGiphy
  • Вызов: Giphy::sendAnswer
static function sendAnswer($messageId, $messageFields)
{
	if (!BitrixMainLoader::includeModule('im'))
		return false;

	$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, Array("#RETRY#" => Loc::getMessage("IMBOT_GIPHY_COMMAND_GIPHY_RETRY")));
	}

	if ($messageFields['MESSAGE_ANSWER_ALTER'] == 'Y' && $messageFields['MESSAGE_ANSWER'])
	{
		$attach = new CIMMessageParamAttach(null, CIMMessageParamAttach::CHAT);
		$attach->AddImages(Array(
			Array(
				"NAME" => $messageFields['MESSAGE'].' ('.$messageFields['MESSAGE_ANSWER']["fixed_height_small_width"].'x'.$messageFields['MESSAGE_ANSWER']["fixed_height_small_height"].')',
				"LINK" => $messageFields['MESSAGE_ANSWER']["fixed_height_small_url"]
			)
		));
		$messageParams = Array(
			'DIALOG_ID' => $messageFields['DIALOG_ID'],
			'MESSAGE' => Loc::getMessage('IMBOT_GIPHY_FOUND_ALTER_MESSAGE'),
			'ATTACH' => $attach,
		);
		if ($messageFields['COMMAND_ID'] > 0)
		{
			BitrixImCommand::addMessage(Array('MESSAGE_ID' => $messageFields['MESSAGE_ID'], 'COMMAND_ID' => $messageFields['COMMAND_ID']), $messageParams);
		}
		else
		{
			BitrixImBot::addMessage(Array('BOT_ID' => self::getBotId()), $messageParams);
		}
	}
	else if ($messageFields['MESSAGE_ANSWER'])
	{
		$messageParams = Array(
			'DIALOG_ID' => $messageFields['DIALOG_ID'],
			'MESSAGE' => $messageFields['MESSAGE_ANSWER']["fixed_height_small_url"],
			'KEYBOARD' => $keyboard
		);
		if ($messageFields['COMMAND_ID'] > 0)
		{
			if ($messageFields['COMMAND_CONTEXT'] == 'KEYBOARD')
			{
				CIMMessenger::Update($messageFields['MESSAGE_ID'], $messageParams['MESSAGE'], true, false, self::getBotId());
				CIMMessageParam::Set($messageFields['MESSAGE_ID'], Array('KEYBOARD' => $keyboard? $keyboard: 'N'));
				CIMMessageParam::SendPull($messageFields['MESSAGE_ID'], Array('KEYBOARD'));
			}
			else
			{
				BitrixImCommand::addMessage(Array('MESSAGE_ID' => $messageFields['MESSAGE_ID'], 'COMMAND_ID' => $messageFields['COMMAND_ID']), $messageParams);
			}
		}
		else
		{
			BitrixImBot::addMessage(Array('BOT_ID' => self::getBotId()), $messageParams);
		}
	}
	else
	{
		$messageParams = Array(
			'DIALOG_ID' => $messageFields['DIALOG_ID'],
			'MESSAGE' => isset($messageFields['ANSWER'])? $messageFields['ANSWER']: Loc::getMessage('IMBOT_GIPHY_NOT_FOUND_MESSAGE'),
		);
		if ($messageFields['COMMAND_ID'] > 0)
		{
			BitrixImCommand::addMessage(Array('MESSAGE_ID' => $messageFields['MESSAGE_ID'], 'COMMAND_ID' => $messageFields['COMMAND_ID']), $messageParams);
		}
		else
		{
			BitrixImBot::addMessage(Array('BOT_ID' => self::getBotId()), $messageParams);
		}
	}

	return true;
}