- Модуль: 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;
}