отправьте удаленное уведомление с токеном fcm на устройство ios, используя php - PullRequest
0 голосов
/ 20 марта 2020

Я - нативный разработчик для создания ios приложения.

Я борюсь с реализацией получения удаленных уведомлений с помощью fcm.

Наш бэкэнд-разработчик использует php, а также он android разработчик.

Таким образом, способ, которым он разработал API для fcm, оптимизирован до android.

Вот код.

function sendFCM($notif_array, $id) {
    $API_KEY = "API key";
    $url = 'https://fcm.googleapis.com/fcm/send';

    $keys = array_keys($notif_array);
    $fields = array (
            'registration_ids' => array (
                    $id
            ),
            // 'data' => array (
            //         "message" => $message,
            //         "type" => $notif_type
            // )
            'content_available'=>true,
            'priority'=>'high',
            'data' => $notif_array,
            'notification'=>array(
              "body"=>$notif_content
            )
    );
    $fields = json_encode ( $fields );

    $headers = array (
            'Authorization: key=' . $API_KEY,
            '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_POSTFIELDS, $fields );

    $result = curl_exec ( $ch );
    echo $result;
    curl_close ( $ch );
}

I ' Мы уже зарегистрировали ключ APN на консоли Firebase и протестировали его. Он работает хорошо.

Я получаю тестовое облачное сообщение от firebase хорошо.

Как вы знаете, есть несколько функций на Resact-native-Firebase, связанных с уведомлением

firebase.notifications().onNotification(notif => console.log(notif))
firebase.notifications().onNotificationDisplayed(notif => console.log(notif))
...
...
firebase.messaging().onMessage(message => console.log(message))

но сейчас работает только функция onMessage.

Я полагаю, что сервер fcm дает только данные, а не уведомления.

Если есть кто-то, кто знаком с php, не могли бы вы проверить это php код, если он правильный или нет?

Спасибо!

1 Ответ

1 голос
/ 20 марта 2020

В вашем методе sendFCM переменная $notif_content не определена. Кроме того, я знаю, что data закомментирован, но не закомментирован, переменная $notif_type также не будет определена.

Я знаю, что заставить FCM работать с iOS может быть немного неприятно, ранее У меня были проблемы с недействительными сертификатами, хотя я ожидал, что Firebase немного более устойчив, поскольку мне не приходилось использовать его в течение нескольких лет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...