Пользовательские учетные данные пользователя для Nexmo / Vonage в уведомлении Laravel

#laravel #notifications #nexmo

Вопрос:

Я пишу SMS-уведомление Laravel с каналом Nexmo. Я не хочу использовать глобальный ключ API, но вместо этого другой пользовательский ключ / секрет API. Я пытался сделать это таким образом:

 class MyNotification extends Notification
{
    use Queueable;

    /**
     * Get the notification's delivery channels.
     *
     * @param  mixed  $notifiable
     * @return array
     */
    public function via($notifiable)
    {
        $channels = ['mail'];

        if ($notifiable instanceof User) {
            if ($notifiable->sms_notifications amp;amp; $notifiable->nexmo_api_key) {
                $channels[] = 'nexmo';
            }
        }

        return $channels;
    }

    /**
     * Get the mail representation of the notification.
     *
     * @param  mixed  $notifiable
     * @return IlluminateNotificationsMessagesMailMessage
     */
    public function toMail($notifiable)
    {
        // ...
    }

    public function toNexmo($notifiable)
    {
        /** @var User $notifiable */
        $nexmoClient = new Client(new Basic($notifiable->nexmo_api_key, $notifiable->nexmo_api_secret));

        return (new NexmoMessage())
            ->content("Test")
            ->usingClient($nexmoClient); // Ignored?
    }

    /**
     * Get the array representation of the notification.
     *
     * @param  mixed  $notifiable
     * @return array
     */
    public function toArray($notifiable)
    {
        return [
            //
        ];
    }
}

 

К сожалению, это не работает, и клиент, установленный, ->usingClient кажется, игнорируется. Кто-нибудь может мне помочь, пожалуйста?

Комментарии:

1. Быстрый просмотр исходного кода показывает, что SMS должно использоваться либо предоставленным клиентом, либо возвращаться к глобальному, но обработчик короткого кода этого не делает. Вы отправляете, используя полный номер телефона или короткий код?

2. Полный номер телефона.