• Модуль: imconnector
  • Путь к файлу: ~/bitrix/modules/imconnector/lib/connectors/telegrambot.php
  • Класс: BitrixImConnectorConnectorsTelegramBot
  • Вызов: TelegramBot::processingInputCommand
public function processingInputCommand(string $command, array $message, int $line): Result
{
	$result = new Result();

	// getting user id
	$userResult = $this->processingUser($message['user']);
	if ($userResult->isSuccess())
	{
		$userId = $userResult->getResult();
	}
	else
	{
		return $result->addErrors($userResult->getErrors());
	}

	// chat id
	$chat = $this->getChat([
		'USER_CODE' => $this->generateChatCode($line, (int)$message['user']['id'], (int)$userId),
		'USER_ID' => $userId,
		'CONNECTOR' => $message,
	]);
	$chatId = $chat->getData('ID');
	if (!$chatId)
	{
		return $result->addError(new Error(
			'Failed to create chat',
			'ERROR_IMCONNECTOR_FAILED_CHAT',
			__METHOD__,
			$message
		));
	}

	$statusData = Status::getInstance(self::TELEGRAM_BOT, $line)->getData();

	if (!empty($statusData['welcome_message']))
	{
		$this->sendMessage($statusData['welcome_message'], $chatId);
	}

	if (
		!empty($statusData['eshop_enabled'])
		&& $statusData['eshop_enabled'] == 'Y'
	)
	{
		$messageToSend = [
			'chatId' => $message['chat']['id'],
			'userId' => $userId,
			'lineId' => $line,
		];
		$connectorOutput = new Output(self::TELEGRAM_BOT, $line);
		$connectorOutput->registerEshop($messageToSend);
	}

	if ($result->isSuccess())
	{
		// getting user id
		$message['user'] = $userId;

		$result->setResult($message);
	}

	return $result;
}