为什么我无法从我的PHP服务器向我的iOS应用程序发送推送通知?

时间:2018-03-12 03:11:50

标签: php ios firebase push-notification firebase-cloud-messaging

我是PHP开发的初学者,我想make push notification使用firebase云消息传递到my iOS App。如果我通过firebase控制台撰写邮件,我可以将Firebase Cloud Messaging控制台的通知发送到我的客户端应用程序。

但如果我从我自己的PHP服务器撰写邮件,则无法在我的客户端应用中收到通知。我的后端服务器似乎无法连接到iOS firebase cloud messaging。我错过了像我的PHP代码中编写的API密钥吗?

我使用APNs身份验证密钥连接APN和FCM,而不是APNs证书。

我也为我的Android应用程序制作了push notification,我可以将notification from Firebase console以及我自己的服务器发送到我的client app

我对从firebase到我的PHP脚本的API感到困惑。我应该从我的Firebase复制并粘贴到我的PHP脚本的API Access密钥是什么?

 define( 'API_ACCESS_KEY', 'YOUR-SERVER-API-ACCESS-KEY-GOES-HERE' );

我收到了回复消息

  

无效(传统)已发送的服务器密钥或发件人未获得授权   执行请求。

这是我在PHP脚本中使用的完整代码,用于将通知发送到我的iOS应用程序。

<?php
#API access key from Google API's Console
    define( 'API_ACCESS_KEY', 'YOUR-SERVER-API-ACCESS-KEY-GOES-HERE' );
    $registrationIds = $_GET['id'];
#prep the bundle
     $msg = array
          (
        'body'  => 'Body  Of Notification',
        'title' => 'Title Of Notification',
                'icon'  => 'myicon',/*Default Icon*/
                'sound' => 'mySound'/*Default sound*/
          );
    $fields = array
            (
                'to'        => $registrationIds,
                'notification'  => $msg
            );


    $headers = array
            (
                'Authorization: key=' . API_ACCESS_KEY,
                'Content-Type: application/json'
            );
#Send Reponse To FireBase Server    
        $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 ) );
        $result = curl_exec($ch );
        curl_close( $ch );
#Echo Result Of FireBase Server
echo $result;

这里出了什么问题?提前谢谢:)

0 个答案:

没有答案