public function login(Request $request)
{
try {
...etc
// 성공시 임시 페이지로 이동
return redirect()->route('apppush.index', ['action' => 'device_token', 'id' => auth()->user()->id]);
} catch (Exception $e) {
Log::error($e->getMessage());
}
}
public function deviceStore(Request $request)
{
$requestData = json_decode($request->getContent(), true);
$id = $requestData['id'];
$token = $requestData['token'];
try {
$user = User::where('id', $id)->first();
$user->token = $token;
$user->save();
redirect()->route('index');
return response()->json([
'success' => true
]);
} catch (Exception $e) {
Log::error($e);
return response()->json([
'success' => false,
'message' => '오류가 발생했습니다.'
]);
}
}
public function sendPushNotification($token, $option)
{
// Push 시작
$ch = curl_init("https://fcm.googleapis.com/fcm/send");
$header = array("Content-Type:application/json", "Authorization:key=<FirebaseKey>");
$data = json_encode(array(
"to" => $token,
"notification" => array(
"title" => '제목',
"body" => '내용',
"image" => "logo.png"
)
));
Log::error([
"info" => "sendPushNotification",
"to" => $token,
"noti" => [
'제목',
'내용'
]
]);
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_exec($ch);
curl_close($ch);
}