client = $client; $this->twig = $twig; } /** * @param Account[] $accounts * @param string $template * @param array $templateData * @param KeyboardMethods|null $keyboardMarkup * @param bool $disableWebPreview * @param bool $disableNotifications * @param string $parseMode */ public function sendMassTemplatedMessage( array $accounts, string $template, array $templateData = [], KeyboardMethods $keyboardMarkup = null, bool $disableWebPreview = true, bool $disableNotifications = false, string $parseMode = self::PARSE_MARKDOWN ) { $text = $this->twig->render($template, $templateData); foreach ($accounts as $account) { $this->sendMessage($account, $text, $parseMode, $keyboardMarkup, $disableWebPreview, $disableNotifications); } } public function sendTemplatedMessage( Account $account, string $template, array $templateData = [], KeyboardMethods $keyboardMarkup = null, bool $disableWebPreview = true, bool $disableNotifications = false, string $parseMode = self::PARSE_MARKDOWN ): bool { $text = $this->twig->render($template, $templateData); return $this->sendMessage($account, $text, $parseMode, $keyboardMarkup, $disableWebPreview, $disableNotifications); } public function sendMessage( Account $account, string $text, string $parseMode = self::PARSE_PLAIN, KeyboardMethods $keyboardMarkup = null, bool $disableWebPreview = false, bool $disableNotifications = false ): bool { return $this->sendMessageToChat($account->getChatId(), $text, $parseMode, $keyboardMarkup, $disableWebPreview, $disableNotifications); } public function sendMessageToChat( int $chatId, string $text, string $parseMode = self::PARSE_PLAIN, KeyboardMethods $keyboardMarkup = null, bool $disableWebPreview = false, bool $disableNotifications = false ): bool { $sendMessage = new SendMessage(); $sendMessage->chat_id = (string)$chatId; $sendMessage->text = $text; $sendMessage->parse_mode = $parseMode; $sendMessage->disable_web_page_preview = $disableWebPreview; $sendMessage->disable_notification = $disableNotifications; $sendMessage->reply_markup = $keyboardMarkup; try { $this->client->performApiRequest($sendMessage); return true; } catch (ClientException $e) { return false; } } }