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
1 year ago
|
<?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);
|
||
|
}
|
||
|
}
|