Firebase Web 推送通知



我正在尝试使用 angular5 中的 firebase 和 Codeignitor 发送网络推送通知。初始化火碱后,我能够将设备令牌发送给我想发送推送通知的人。当我尝试使用 curl 在后端发送它时。它总是向我显示此错误

{
"multicast_id":8778443463170192739,
"success":0,
"failure":1,
"canonical_ids":0,
"results":[
{
"error":"MismatchSenderId"
}
]
}

在后端 api 请求中,我正在使用"AAAA8q7RESs:APA91bFrOrzgvTb0yQTqTF6huozIvgi_5xf1lY8qv5kyoDViuBYnVFr3Qfxg3DZHN_e7-AqWBIvRlQvPJkgZtxKIpCYs_aUUiYHOKuKLLJvzxAENjKmF4mCQJb94tJV8J-vBgnv0FPPY".的"服务器密钥">

但始终显示相同的错误。

我的后端 Php 代码是

public function sendpushnotification() {
$request = json_decode(file_get_contents('php://input'),true);
$url = 'https://fcm.googleapis.com/fcm/send';
$fields = array(
'registration_ids'  => array($request['token']),
'data'              => array( "message" => "Hello this is test push notification" ),
);
$headers = array( 
'Authorization: key=AAAA8q7RESs:APA91bFrOrzgvTb0yQTqTF6huozIvgi_5xf1lY8qv5kyoDViuBYnVFr3Qfxg3DZHN_e7-AqWBIvRlQvPJkgZtxKIpCYs_aUUiYHOKuKLLJvzxAENjKmF4mCQJb94tJV8J-vBgnv0FPPY',
'Content-Type: application/json'
);

// Open connection
$ch = curl_init();
// Set the url, number of POST vars, POST data
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, json_encode( $fields ) );
// Avoids problem with https certificate
curl_setopt( $ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt( $ch, CURLOPT_SSL_VERIFYPEER, false);
// Execute post
$result = curl_exec($ch);
curl_close($ch);
echo json_encode($result);    
}

谁能帮我。我为此花了很多时间,但没有找到任何解决方案。

我有一个疑问。deviceToken/Device ID 是否取决于 messageSenderID?

首先,尝试从FCM控制台发送通知,提供deviceToken。 我使用了下面的代码,它工作正常。我在助手中编写了这个函数,并在多个控制器中使用它。 第二件事:deviceToken/deviceID 将用于将接收消息的用户。

function sendFCM($message, $id, $message_info='', $type ='') {
$API_ACCESS_KEY = "YOUR_FCM_SERVER_KEY";
$url = 'https://fcm.googleapis.com/fcm/send';
$fields = array (
'registration_ids' => array (
$id
),
'data' => array (
"message" => $message,
'message_info' => $message_info,
),                
'priority' => 'high',
'notification' => array(
'title' => $message['title'],
'body' => $message['body'],                            
),
);
$fields = json_encode ( $fields );
$headers = array (
'Authorization: key=' . $API_ACCESS_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 );
curl_close ( $ch );
}

相关内容

  • 没有找到相关文章

最新更新