Кажется, это мое последнее задание. Так что вам нужно использовать Laravel или серверный движок для отправки сообщения облака базы данных (fcm) и использовать реагирование для его получения.
Для внутреннего интерфейса на основе php (Laravel / lumen / что угодно) вы можете использовать это: https://firebase -php.readthedocs.io / en / latest / cloud-messaging.html
или, если вам нужно более простое, просто с помощью функции curl (). Это моя простая функция для fcm:
public function sendCloudMessageTopic($title, $message, $topics, $detail = null)
{
try {
$serverApiKey = "YOUR APP FIREBASE KEY";
$header = [
"Authorization: Key=" . $serverApiKey,
"Content-Type: Application/json",
];
$notification = [
"title" => $title,
"body" => $message,
];
$data = [
"notification" => $notification,
"detail" => $detail,
];
$payload = ["notification" => $notification, "data" => $data, "to" => $topics];
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://fcm.googleapis.com/fcm/send",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode($payload),
CURLOPT_HTTPHEADER => $header,
));
$response = curl_exec($curl);
$failed = curl_error($curl);
curl_close($curl);
if ($failed == TRUE)
throw new \Exception("CURL Action Failed to send firebase cloud message");
$result = json_decode($response);
if (!isset($result->message_id))
throw new \Exception("Failed to send firebase cloud message");
return [
'status' => 1,
'message' => "successfully sending firebase cloud message"
];
} catch
(\Exception $exception) {
return [
'status' => 0,
'message' => "Failed to send firebase cloud message"
];
}
}
Я никогда не пробовал использовать ее для поиска по фронту, но вы можете взглянуть на эту статью:
https://codeburst.io/how-to-add-push-notifications-on-firebase-cloud-messaging-to-react-web-app-de7c6f04c920
Спасибо,