我有一個iOS應用程序,該應用程序存在於應用程序商店中。我可以將推送通知發送到安裝了應用程序的iOS設備,但只能在從Firebase控制檯發送推送通知時發送。當通過cURL/PHP發送的設備上未收到Firebase通知
當我嘗試通過cURL請求發送推送通知時,來自服務器的響應表明我已成功,但未在設備上收到消息。我已經在多播和單個收件人有效載荷上嘗試了這一點。
我必須錯過更基本的東西,但我看不到它。
這是我的PHP代碼:
<?php
// API access key from Google API's Console
define('API_ACCESS_KEY', 'AI*****4LPGkx8xtDG2tBl*****7KWJfmp1szcA');
$registrationIds = array($_GET['id']);
// prep the bundle
$msg = array
(
'message' => 'here is a message. message',
'title' => 'This is a title. title'
);
$fields = array
(
'to' => "cUxd-iTVVWo:APA*****kQTuqJ5RREKhhlJjm27NCuVfUn5APg3lBFqh-YWjgx*****iOpAQeLB14CzM2YTwIJo_75jzCmbFLKj0_zpKSHvAEbmJz*****BBezGJIng-N4H-cAD6ahY7mQNYZtEJLAIE",
'data' => $msg
);
$headers = array
(
'Authorization: key=' . API_ACCESS_KEY,
'Content-Type: application/json'
);
$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;
下面是運行這段代碼時,我得到了響應:
{ 「multicast_id」:5814921248239922706, 「成功」:1, 「失敗」 :0, 「canonical_ids」:0 「結果」:[{ 「MESSAGE_ID」: 「0:1476193002715692%a4ddee3cf9fd7ecd」}]}
成功添加鍵和值類似例子和處理:1,貌似消息是越來越成功傳遞。你有沒有更新iOS 10的代碼? – FredLoh
是的。該應用程序已成功轉換爲Swift 2.3。從Firebase控制檯發送通知時成功傳遞通知 –
您是否能夠在測試設備上運行應用程序並查看消息是否正在傳遞? – FredLoh