#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. Полный номер телефона.