You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
49 lines
1.5 KiB
49 lines
1.5 KiB
<?php |
|
|
|
namespace App\Services; |
|
|
|
use Illuminate\Support\Facades\Http; |
|
|
|
class FCMService |
|
{ |
|
public static function send($fcm_token, $notification) |
|
{ |
|
$url = 'https://fcm.googleapis.com/fcm/send'; |
|
// $url = 'https://fcm.googleapis.com/v1/projects/594814396007/messages:send'; |
|
|
|
$serverKey = config('fcm.server_key'); |
|
$data = [ |
|
"registration_ids" => [$fcm_token], |
|
"notification" => [ |
|
"title" => $notification['title'], |
|
"body" => $notification['body'], |
|
] |
|
]; |
|
$encodedData = json_encode($data); |
|
|
|
$headers = [ |
|
'Authorization:key=' . $serverKey, |
|
'Content-Type: application/json', |
|
]; |
|
|
|
$ch = curl_init(); |
|
|
|
curl_setopt($ch, CURLOPT_URL, $url); |
|
curl_setopt($ch, CURLOPT_POST, true); |
|
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); |
|
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); |
|
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); |
|
curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1); |
|
// Disabling SSL Certificate support temporarly |
|
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); |
|
curl_setopt($ch, CURLOPT_POSTFIELDS, $encodedData); |
|
|
|
$result = curl_exec($ch); |
|
if ($result === FALSE) { |
|
return array("success"=> false, "message"=> curl_error($ch)); |
|
} |
|
// Close connection |
|
curl_close($ch); |
|
return array("success"=> true, "message"=> $result); |
|
} |
|
} |