• Модуль: imbot
  • Путь к файлу: ~/bitrix/modules/imbot/lib/service/notifier.php
  • Класс: BitrixImBotServiceNotifier
  • Вызов: Notifier::checkChannelMembers
static function checkChannelMembers(int $chatId): void
{
	$classSupport = self::detectSupportBot();

	$chat = new CIMChat(0);
	$chat->setOwner($chatId, $classSupport::getBotId(), false);

	$adminGroupUsers = self::getAdminGroupUsers();
	$adminGroupUsers[] = $classSupport::getBotId();
	array_map('intVal', $adminGroupUsers);

	$relations = ImChat::getRelation($chatId, ['SELECT' => ['ID', 'USER_ID']]);
	$chatMembers = [];
	foreach($relations as $relation)
	{
		$chatMembers[] = (int)$relation['USER_ID'];
	}

	$addUsers = array_diff($adminGroupUsers, $chatMembers);
	if (count($addUsers))
	{
		foreach ($addUsers as $userId)
		{
			$chat->addUser($chatId, $userId);
		}
	}
}