Closed varqasim closed 5 years ago
could you please dd the result from routeNotificationForOneSignal() ? (Just call it and dd the result). Then you should know what is returned from the method.
Do you mean to dd the $this->pushNotificationDevices()->pluck('player_id')->toArray()
call or the function when it's called in the Notification? I attached the dd result of $this->pushNotificationDevices()->pluck('player_id')->toArray();
@qasimalbaqali That looks fine to me? Maybe the issue is somewhere else? What does your code look like to send the notification? and then what is your code like in the notification file? ie. the Via and toOneSignal methods
This is the code that I have in my Notification
public function toOneSignal($notifiable)
{
try {
$reservation = $this->reservation;
$pool = $this->reservation->timeSlot->pool;
if ($notifiable->locale === 'en') {
$subject = "A reservation has been made!";
$body = sprintf(
"A reservation on your property %s has been made on %s.",
$pool->en_name,
$reservation->booking_date);
} else {
$subject = "تم حجز استراحتك!";
$body = sprintf(
"تم حجز استراحتك %s في تاريخ %s",
$pool->ar_name,
$reservation->booking_date);
}
return OneSignalMessage::create()
->subject($subject)
->body($body);
} catch (RequestException $exception) {
\Log::error('OneSignal:Reservation'.$reservation->id.':Message'.$exception->getMessage());
} catch (\Exception $exception) {
\Log::error('OneSignal:Reservation'.$reservation->id.':Message'.$exception->getMessage());
}
}
I have two other channels, email and nexmo which work fine. It errors out when it reaches the OneSignal channel only. I tried to wrap the call in a try catch block, but it never hits the catch instead it throws an exception which isn't caught.
ocal.ERROR: Server error: `POST https://onesignal.com/api/v1/notifications` resulted in a `500 Internal Server Error` response:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>500 • OneSignal</title>
<style>
html, bod (truncated...)
{"userId":1,"email":"qasim@qasim.com","exception":"[object] (GuzzleHttp\\Exception\\ServerException(code: 500): Server error: `POST https://onesignal.com/api/v1/notifications` resulted in a `500 Internal Server Error` response:
<!DOCTYPE html>
<html lang=\"en\">
<head>
<meta charset=\"UTF-8\">
<title>500 • OneSignal</title>
<style>
html, bod (truncated...)
at /home/website/vendor/guzzlehttp/guzzle/src/Exception/RequestException.php:113)
[stacktrace]
#0 /home/website/vendor/guzzlehttp/guzzle/src/Middleware.php(66): GuzzleHttp\\Exception\\RequestException::create(Object(GuzzleHttp\\Psr7\\Request), Object(GuzzleHttp\\Psr7\\Response))
#1 /home/website/vendor/guzzlehttp/promises/src/Promise.php(203): GuzzleHttp\\Middleware::GuzzleHttp\\{closure}(Object(GuzzleHttp\\Psr7\\Response))
#2 /home/website/vendor/guzzlehttp/promises/src/Promise.php(156): GuzzleHttp\\Promise\\Promise::callHandler(1, Object(GuzzleHttp\\Psr7\\Response), Array)
#3 /home/website/vendor/guzzlehttp/promises/src/TaskQueue.php(47): GuzzleHttp\\Promise\\Promise::GuzzleHttp\\Promise\\{closure}()
#4 /home/website/vendor/guzzlehttp/promises/src/Promise.php(246): GuzzleHttp\\Promise\\TaskQueue->run(true)
#5 /home/website/vendor/guzzlehttp/promises/src/Promise.php(223): GuzzleHttp\\Promise\\Promise->invokeWaitFn()
#6 /home/website/vendor/guzzlehttp/promises/src/Promise.php(267): GuzzleHttp\\Promise\\Promise->waitIfPending()
#7 /home/website/vendor/guzzlehttp/promises/src/Promise.php(225): GuzzleHttp\\Promise\\Promise->invokeWaitList()
#8 /home/website/vendor/guzzlehttp/promises/src/Promise.php(62): GuzzleHttp\\Promise\\Promise->waitIfPending()
#9 /home/website/vendor/guzzlehttp/guzzle/src/Client.php(131): GuzzleHttp\\Promise\\Promise->wait()
#10 /home/website/vendor/guzzlehttp/guzzle/src/Client.php(89): GuzzleHttp\\Client->request('post', 'https://onesign...', Array)
#11 /home/website/vendor/berkayk/onesignal-laravel/src/OneSignalClient.php(292): GuzzleHttp\\Client->__call('post', Array)
#12 /home/website/vendor/berkayk/onesignal-laravel/src/OneSignalClient.php(240): Berkayk\\OneSignal\\OneSignalClient->post('/notifications')
#13 /home/website/vendor/laravel-notification-channels/onesignal/src/OneSignalChannel.php(37): Berkayk\\OneSignal\\OneSignalClient->sendNotificationCustom(Array)
#14 /home/website/vendor/laravel/framework/src/Illuminate/Notifications/NotificationSender.php(113): NotificationChannels\\OneSignal\\OneSignalChannel->send(Object(App\\User), Object(App\\Notifications\\Owner\\ReservationConfirmedOwner))
#15 /home/website/vendor/laravel/framework/src/Illuminate/Notifications/NotificationSender.php(89): Illuminate\\Notifications\\NotificationSender->sendToNotifiable(Object(App\\User), 'b8f45599-31b1-4...', Object(App\\Notifications\\Owner\\ReservationConfirmedOwner), 'NotificationCha...')
#16 /home/website/vendor/laravel/framework/src/Illuminate/Notifications/NotificationSender.php(64): Illuminate\\Notifications\\NotificationSender->sendNow(Object(Illuminate\\Database\\Eloquent\\Collection), Object(App\\Notifications\\Owner\\ReservationConfirmedOwner))
#17 /home/website/vendor/laravel/framework/src/Illuminate/Notifications/ChannelManager.php(35): Illuminate\\Notifications\\NotificationSender->send(Object(Illuminate\\Database\\Eloquent\\Collection), Object(App\\Notifications\\Owner\\ReservationConfirmedOwner))
#18 /home/website/vendor/laravel/framework/src/Illuminate/Notifications/RoutesNotifications.php(18): Illuminate\\Notifications\\ChannelManager->send(Object(App\\User), Object(App\\Notifications\\Owner\\ReservationConfirmedOwner))
#19 /home/website/app/Http/Controllers/Api/Admin/ReservationController.php(78): App\\User->notify(Object(App\\Notifications\\Owner\\ReservationConfirmedOwner))
#20 [internal function]: App\\Http\\Controllers\\Api\\Admin\\ReservationController->confirmReservation('25')
#21 /home/website/vendor/laravel/framework/src/Illuminate/Routing/Controller.php(54): call_user_func_array(Array, Array)
#22 /home/website/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(45): Illuminate\\Routing\\Controller->callAction('confirmReservat...', Array)
#23 /home/website/vendor/laravel/framework/src/Illuminate/Routing/Route.php(212): Illuminate\\Routing\\ControllerDispatcher->dispatch(Object(Illuminate\\Routing\\Route), Object(App\\Http\\Controllers\\Api\\Admin\\ReservationController), 'confirmReservat...')
#24 /home/website/vendor/laravel/framework/src/Illuminate/Routing/Route.php(169): Illuminate\\Routing\\Route->runController()
#25 /home/website/vendor/laravel/framework/src/Illuminate/Routing/Router.php(658): Illuminate\\Routing\\Route->run()
#26 /home/website/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(30): Illuminate\\Routing\\Router->Illuminate\\Routing\\{closure}(Object(Dingo\\Api\\Http\\Request))
#27 /home/website/vendor/santigarcor/laratrust/src/Middleware/LaratrustRole.php(33): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Dingo\\Api\\Http\\Request))
#28 /home/website/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(149): Laratrust\\Middleware\\LaratrustRole->handle(Object(Dingo\\Api\\Http\\Request), Object(Closure), 'administrator')
#29 /home/website/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Dingo\\Api\\Http\\Request))
#30 /home/website/vendor/laravel/framework/src/Illuminate/Auth/Middleware/Authenticate.php(43): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Dingo\\Api\\Http\\Request))
#31 /home/website/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(149): Illuminate\\Auth\\Middleware\\Authenticate->handle(Object(Dingo\\Api\\Http\\Request), Object(Closure), 'api')
#32 /home/website/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Dingo\\Api\\Http\\Request))
#33 /home/website/vendor/dingo/api/src/Http/Middleware/RateLimit.php(70): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Dingo\\Api\\Http\\Request))
#34 /home/website/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(149): Dingo\\Api\\Http\\Middleware\\RateLimit->handle(Object(Dingo\\Api\\Http\\Request), Object(Closure))
#35 /home/website/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Dingo\\Api\\Http\\Request))
#36 /home/website/vendor/dingo/api/src/Http/Middleware/PrepareController.php(45): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Dingo\\Api\\Http\\Request))
#37 /home/website/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(149): Dingo\\Api\\Http\\Middleware\\PrepareController->handle(Object(Dingo\\Api\\Http\\Request), Object(Closure))
#38 /home/website/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Dingo\\Api\\Http\\Request))
#39 /home/website/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(102): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Dingo\\Api\\Http\\Request))
#40 /home/website/vendor/laravel/framework/src/Illuminate/Routing/Router.php(660): Illuminate\\Pipeline\\Pipeline->then(Object(Closure))
#41 /home/website/vendor/laravel/framework/src/Illuminate/Routing/Router.php(635): Illuminate\\Routing\\Router->runRouteWithinStack(Object(Illuminate\\Routing\\Route), Object(Dingo\\Api\\Http\\Request))
#42 /home/website/vendor/laravel/framework/src/Illuminate/Routing/Router.php(601): Illuminate\\Routing\\Router->runRoute(Object(Dingo\\Api\\Http\\Request), Object(Illuminate\\Routing\\Route))
#43 /home/website/vendor/laravel/framework/src/Illuminate/Routing/Router.php(590): Illuminate\\Routing\\Router->dispatchToRoute(Object(Dingo\\Api\\Http\\Request))
#44 /home/website/vendor/dingo/api/src/Routing/Adapter/Laravel.php(81): Illuminate\\Routing\\Router->dispatch(Object(Dingo\\Api\\Http\\Request))
#45 /home/website/vendor/dingo/api/src/Routing/Router.php(512): Dingo\\Api\\Routing\\Adapter\\Laravel->dispatch(Object(Dingo\\Api\\Http\\Request), 'v1')
#46 /home/website/vendor/dingo/api/src/Http/Middleware/Request.php(126): Dingo\\Api\\Routing\\Router->dispatch(Object(Dingo\\Api\\Http\\Request))
#47 /home/website/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(114): Dingo\\Api\\Http\\Middleware\\Request->Dingo\\Api\\Http\\Middleware\\{closure}(Object(Dingo\\Api\\Http\\Request))
#48 /home/website/vendor/barryvdh/laravel-debugbar/src/Middleware/InjectDebugbar.php(65): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Dingo\\Api\\Http\\Request))
#49 /home/website/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(149): Barryvdh\\Debugbar\\Middleware\\InjectDebugbar->handle(Object(Dingo\\Api\\Http\\Request), Object(Closure))
#50 /home/website/vendor/barryvdh/laravel-cors/src/HandleCors.php(36): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Dingo\\Api\\Http\\Request))
#51 /home/website/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(149): Barryvdh\\Cors\\HandleCors->handle(Object(Dingo\\Api\\Http\\Request), Object(Closure))
#52 /home/website/vendor/fideloper/proxy/src/TrustProxies.php(56): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Dingo\\Api\\Http\\Request))
#53 /home/website/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(149): Fideloper\\Proxy\\TrustProxies->handle(Object(Dingo\\Api\\Http\\Request), Object(Closure))
#54 /home/website/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(30): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Dingo\\Api\\Http\\Request))
#55 /home/website/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(149): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle(Object(Dingo\\Api\\Http\\Request), Object(Closure))
#56 /home/website/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(30): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Dingo\\Api\\Http\\Request))
#57 /home/website/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(149): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle(Object(Dingo\\Api\\Http\\Request), Object(Closure))
#58 /home/website/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ValidatePostSize.php(27): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Dingo\\Api\\Http\\Request))
#59 /home/website/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(149): Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize->handle(Object(Dingo\\Api\\Http\\Request), Object(Closure))
#60 /home/website/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/CheckForMaintenanceMode.php(46): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Dingo\\Api\\Http\\Request))
#61 /home/website/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(149): Illuminate\\Foundation\\Http\\Middleware\\CheckForMaintenanceMode->handle(Object(Dingo\\Api\\Http\\Request), Object(Closure))
#62 /home/website/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(102): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Dingo\\Api\\Http\\Request))
#63 /home/website/vendor/dingo/api/src/Http/Middleware/Request.php(127): Illuminate\\Pipeline\\Pipeline->then(Object(Closure))
#64 /home/website/vendor/dingo/api/src/Http/Middleware/Request.php(103): Dingo\\Api\\Http\\Middleware\\Request->sendRequestThroughRouter(Object(Dingo\\Api\\Http\\Request))
#65 /home/website/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(149): Dingo\\Api\\Http\\Middleware\\Request->handle(Object(Dingo\\Api\\Http\\Request), Object(Closure))
#66 /home/website/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php(53): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#67 /home/website/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(102): Illuminate\\Routing\\Pipeline->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))
#68 /home/website/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(151): Illuminate\\Pipeline\\Pipeline->then(Object(Closure))
#69 /home/website/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(116): Illuminate\\Foundation\\Http\\Kernel->sendRequestThroughRouter(Object(Illuminate\\Http\\Request))
#70 /home/website/public/index.php(55): Illuminate\\Foundation\\Http\\Kernel->handle(Object(Illuminate\\Http\\Request))
#71 {main}
"}
This is the stacktrace of the exception when I replace returning array with strings of player ids with returning instances, which as the first post I suspect because I am sending a whole object and not a string or an array of strings.
@AshPowell @LKDevelopment Any idea?
Yeah, since it is a 500 from OneSignal I would ask them. Nice to know would be the response from OneSignal within the 500. On my end, the code works perfectly.
Closed because of inactivity. Feel free to reopen the issue when your problem is not fixed.
I have a table that stores the player_id of all my users. The relationship for my User model has a function that returns all the instances on the database for said user.
In the documentation it said to return either a single string of player_id or an array. Which you can see at the bottom of how I am returning the player_id. For some reason I get the following error whenever I try to return the array of player_ids
App\User::routeNotificationForOneSignal must return a relationship instance
. When returning an instance of PushNotificationDevice I get an internal error whenever the OneSignal notification is fired, which I suspect because I am returning a whole instance ofPushNotificationDevice
and not just an array of strings. Any ideas?