0

Я использую ниже PHP-код для отправки push-уведомлений на устройства Android и iOS с использованием Firebase REST API. Push-уведомления прекрасно подходят для Android-устройств. Но он не приходит в устройство iOS.Firebase Cloud Messaging - PHP REST API не работает на iOS

Между тем, когда я отправляю уведомление с консоли Firebase, оба устройства его получают. Я что-то пропустил в своей реализации API?

$data = array("to" => "/topics/news", 
       'priority' => '10', 
       'notification' => array('body' => $msg)); 

$headers = array 
(
    'Authorization: key='.$apiKey, 
    'Content-Type: application/json' 
); 

try { 
    $ch = curl_init(); 

    curl_setopt($ch, CURLOPT_URL, "https://fcm.googleapis.com/fcm/send"); 

    curl_setopt($ch, CURLOPT_POST, true);                 
    curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data)); 
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
    curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); 

    $ouput = curl_exec($ch); 

    if ($ouput === false) { 
     throw new Exception(curl_error($ch), curl_errno($ch)); 
    } 

    $response = curl_getinfo($ch); 
} catch(Exception $e) {} 
+1

Можете ли вы распечатать, как интерпретируется ваша полезная нагрузка? Если я правильно его прочитаю, он будет показывать полезную нагрузку, где ваше уведомление «находится в« данных »? Также попробуйте установить 'priority' в' high' вместо '10'. –

+0

Да. После установки приоритета высокий он работает нормально. Если вы опубликуете его как ответ, я приму его. – user10

+0

Я пойду вперед и сделаю это. –

ответ

0

Вы должны установить ваш priority в high вместо 10.

При использовании GCM/FCM, единственные допустимые значения для priority являются normal и high, которая равна 5 и 10 для IOS, APN, как было упомянуто here:

Устанавливает приоритет сообщения. Допустимые значения - «нормальные» и «высокие». На iOS они соответствуют приоритетам APN 5 и 10.

Смежные вопросы