Для отправки уведомлений в телеграм использую:
laravel-notification-channels/telegram.
Передаю коллекцию пользователей, которым нужно отправить уведомление:
public function notify(array $message)
{
try {
Notification::send($this->getUsers(), new PriceEvent($message));
} catch (\Exception $e) {
return $e->getMessage();
}
}
Уведомления добавляются в базу (показываются на сайте) и отправляются в телеграм:
/**
* Get the array representation of the notification.
*
* @param mixed $notifiable
* @return array
*/
public function toTelegram($notifiable)
{
$message = "";
// Отправляем уведомление только тем пользователям,которые включили уведомления в Telegram
if ($notifiable->notify_settings->telegram_enabled) {
return TelegramMessage::create()->to($notifiable->telegram_id)->content($message);
}
}
В коде выше делаю проверку, включены ли у пользователя уведомления в Telegram или нет, но к сожалению, такой способ выводит ошибку, при попытке отправить уведомления пользователю, у которого есть chat_id, и пользователю, у которого его нет:
"Telegram notification chat ID was not provided. Please refer usage docs."
Нашел похожую проблему на
гитхабе (
и еще), но особо не понятно как же она была решена. Каким образом можно правильно определить, можно отправлять этому человеку сообщение ДАННЫМ МЕТОДОМ (через телеграм) или нет?