• Модуль: im
  • Путь к файлу: ~/bitrix/modules/im/lib/V2/Message/Send/MentionService.php
  • Класс: BitrixImV2MessageSendMentionService
  • Вызов: MentionService::preparePushForMentionInChat
private function preparePushForMentionInChat(string $pushText, Message $message, Chat $chat, string $chatTitle): array
{
	$avatarUser = $message->getAuthor()->getAvatar();
	if ($avatarUser && mb_strpos($avatarUser, 'http') !== 0)
	{
		$avatarUser = BitrixImCommon::getPublicDomain(). $avatarUser;
	}

	$avatarChat = CIMChat::GetAvatarImage($chat->getAvatarId(), 200, false);
	if ($avatarChat && mb_strpos($avatarChat, 'http') !== 0)
	{
		$avatarChat = BitrixImCommon::getPublicDomain(). $avatarChat;
	}

	$result = [];
	$result['push'] = [];

	$result['module_id'] = 'im';
	$result['push']['params'] = [
		'TAG' => 'IM_CHAT_'.$chat->getChatId(),
		'CHAT_TYPE' => $chat->getType(),
		'CATEGORY' => 'ANSWER',
		'URL' => SITE_DIR.'mobile/ajax.php?mobile_action=im_answer',
		'PARAMS' => [
			'RECIPIENT_ID' => 'chat'.$chat->getChatId()
		]
	];
	$result['push']['type'] = ($chat->getType() == Chat::IM_TYPE_OPEN ? 'openChat' : 'chat');
	$result['push']['tag'] = 'IM_CHAT_'.$chat->getChatId();
	$result['push']['sub_tag'] = 'IM_MESS';
	$result['push']['app_id'] = 'Bitrix24';
	$result['push']['message'] = $pushText;
	$result['push']['advanced_params'] = [
		'group' => ($chat->getEntityType() == Chat::ENTITY_TYPE_LINE ? 'im_lines_message' : 'im_message'),
		'avatarUrl' => $avatarChat ?: $avatarUser,
		'senderName' => $chatTitle,
		'senderMessage' => $pushText,
	];

	return $result;
}