Я использую php-сервер для отправки push-уведомлений FCM. Я хочу знать, как я могу отправлять push-уведомления по нескольким темам одновременно.
Вот мой код.
function sendPush($topic,$msg){ $API_ACCESS_KEY = '...'; $msg = array ( 'msg' => $msg ); $fields = array('to' => '/topics/' . $topic, 'priority' => 'high', 'data' => $msg); $headers = array ( 'Authorization: key=' . $API_ACCESS_KEY, 'Content-Type: application/json' ); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, 'https://fcm.googleapis.com/fcm/send'); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($fields)); $pushResult = curl_exec($ch); curl_close($ch); }
Вы используете ключ condition
для отправки на несколько тем.
Например:
{ "condition": "'dogs' in topics || 'cats' in topics", "priority" : "high", "notification" : { "body" : "This is a Firebase Cloud Messaging Topic Message!", "title" : "FCM Message", } }
Это отправит сообщение устройствам, подписанным на темы «собаки» или «кошки».
Соответствующая цитата из документов FCM :
Чтобы отправить комбинации нескольких тем, сервер приложений устанавливает ключ условия в логическое условие, определяющее целевые темы.
Обратите внимание, что вы ограничены двумя логическими условиями, что означает, что вы можете отправить одно сообщение максимум на 3 темы.