Я пытаюсь отправить push-уведомление в приложение Cordova Ios.
Я использую плагин Cordova-плагин-FCM
Для моего андроид-приложения это работает отлично, проблема для Ios, мой запрос curl возвращает:
InvalidApnsCredential
Я загрузил свой ключ Apns на FCM, и этот ключ работает, потому что я пытаюсь отправить push-уведомление только с Apns, и все работает нормально, мое приложение получает уведомление.
Вот скрипт APNS, который работает: http://thrysoee.dk/apns/
Вот мой скрипт php curl с FCM, который работает с Android, но не с IOS:
$pushUrl = "FCM_PUSH_URL"; //https://fcm.googleapis.com/fcm/send
$key = "SERVER_KEY";//Server key get in FCM console
$ch = curl_init($pushUrl);
$headers = [];
$headers[] = 'Content-Type: application/json';
$headers[] = 'Authorization:key=' . $key;
$data = array(
"notification" => array(
"title" => "Bonjour le monde !",
"body" => "Notif de test",
//"click_action" =>"FCM_PLUGIN_ACTIVITY",
"icon" => "fcm_push_icon",
),
"data" => array(
'msg' => 'hello',
'msg2' => 'world'
),
"to" => "MY_IOS_REGISTER_TOKEN"//token get on my ipad with the getToken method of cordova plugin,
"priority" => "high",
);
$json_data = json_encode($data);
curl_setopt($ch,CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_POSTFIELDS, $json_data);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$res = curl_exec($ch);
curl_close($ch);
echo "<pre>" . print_r($res,true) . "</pre>"; exit;//{"multicast_id":xxxx,"success":0,"failure":1,"canonical_ids":0,"results":[{"error":"InvalidApnsCredential"}]}
Спасибо вам.
Ну, я наконец-то нашел проблему. На консоли Firebase использовать ВСЕГДА ваш apple teamID для префикса приложения, даже если ваш appID имеет префиксный идентификатор, отличный от вашего teamID
Других решений пока нет …