Sun*_*kur 3 codeigniter push-notification firebase firebase-cloud-messaging angular5
我正在尝试使用 angular5 和 Codeignitor 中的 firebase 发送网络推送通知。初始化 firebase 后,我可以将 deviceToken 发送给我想要发送推送通知的人。当我尝试使用 curl 在后端发送它时。它总是向我显示这个错误
{
"multicast_id":8778443463170192739,
"success":0,
"failure":1,
"canonical_ids":0,
"results":[
{
"error":"MismatchSenderId"
}
]
}
Run Code Online (Sandbox Code Playgroud)
在后端 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);
}
Run Code Online (Sandbox Code Playgroud)
任何人都可以帮助我。我为此花了很多时间,但没有找到任何解决方案。
我有一个疑问。deviceToken/deviceID 是否取决于 messageSenderID?
小智 5
首先尝试从 FCM 控制台发送通知给 deviceToken。我使用了下面的代码,它工作正常。我在 helper 中编写了这个函数,并在多个控制器中使用了它。第二件事: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 );
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3026 次 |
| 最近记录: |