[使用fcm令牌将远程通知发送到使用php的ios设备

问题描述 投票:0回答:1

我是负责开发ios应用程序的本地开发人员。

我正在努力实现使用fcm获取远程通知。

我们的后端开发人员使用php,他也是android开发人员。

因此,他为fcm开发api的方式已针对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 );
}

我已经在Firebase控制台上注册了APNs密钥并对其进行了测试。运行良好。

我正在从Firebase很好地获得测试云消息。

您知道,react-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代码是否正确?

谢谢!

php react-native react-native-firebase
1个回答
0
投票

在您的sendFCM方法中,未定义变量$notif_content。此外,我知道data已被注释掉,但没有注释,也不会定义变量$notif_type

[我知道让FCM与iOS配合使用可能会有些痛苦,以前我曾遇到过无效证书的问题,尽管我希望Firebase更具弹性,因为我不需要几次使用它年。

© www.soinside.com 2019 - 2024. All rights reserved.