Уведомления Telegram в плагине Octobercms - PullRequest
0 голосов
/ 23 октября 2019

Я хотел бы отправить сообщение телеграммы конкретному пользователю в 17:00, используя канал уведомлений Telegram laravel, однако, похоже, я не могу его запустить. В настоящее время я использую команду cmd для тестирования, но продолжаю получать ошибки и не знаю, что делать.

Вот мои файлы для команды и уведомления:

SendNotification.php

<?php

namespace Rogier\Lab\Console;

use Illuminate\Console\Command;
use Rogier\Lab\Notifications\DailyTelegram;

   class SendNotifications extends Command
   {

    protected $name = 'lab:notifications:send';
    protected $description = 'Send notifications';
    protected $userid = 919871501;

    /**
     * Execute the console command.
     * @return void
     */
    public function handle()
    {   
        $this->output->writeln('Sending notifications');
        $notification =  new DailyTelegram($this->userid);
        $notification->via()->toTelegram();
        $this->output->writeln('Done');
    }


}

и DailyTelegram.php

<?php

namespace Rogier\Lab\Notifications;

use NotificationChannels\Telegram\TelegramChannel;
use NotificationChannels\Telegram\TelegramMessage;
use Illuminate\Notifications\Notification;
use Illuminate\Notifications\Notifiable;


class DailyTelegram extends Notification
{

    protected $userid = 919871501;


    public function via()
    {
        return [TelegramChannel::class];
    }

    public function toTelegram()
    {
        return TelegramMessage::create()
            // Optional recipient user id.
            ->to($this->userid)
            // Markdown supported.
            ->content("Hello there!\nYour invoice has been *PAID*");
    }
}

Я в настоящее время получаюошибка «Вызов функции-члена toTelegram () для массива», но я чувствую, что перепробовал все, возможно, я делаю это совершенно неправильно. Кто-нибудь знает, как мне это сделать?

заранее спасибо

1 Ответ

0 голосов
/ 23 октября 2019

Да, вы делаете это неправильно. У уведомлений есть метод notify(), вы должны использовать его:

$user->notify(new DailyTelegram);

В этом примере $user - это App\User экземпляр (который можно уведомить «из коробки»).

Вы должны проверить оба сообщения Laravel и каналы / телеграммы laravel-1012 * документы.

...