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