我試圖使用Firebase將通知推送到我的Android應用程序。我已經在我的本地系統上嘗試過了,它工作正常。這是我的代碼。Curl無法發送FCM消息
function sendPushNotiication($tokens,$message){
$url='https://fcm.googleapis.com/fcm/send';
$fields= array(
'registration_ids'=>$tokens,
'data'=>$message
);
$headers=array(
'Authorization: key='.GOOGLE_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_SSL_VERIFYHOST, 0);
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch,CURLOPT_POSTFIELDS, json_encode($fields));
$result=curl_exec($ch);
var_dump($result);
if($result==FALSE){
die('curl failed: '. curl_error($ch));
}
curl_close($ch);
return $result;
}
我已經調用sendPushNotification()方法將數據發送到firebase。 問題是當我把這個在線服務器上。它在var_dump的$ result結果中爲NULL。並在它死後與
捲曲失敗。
curl有什麼問題,它應該工作,如果它在本地系統上工作。
我還執行phpinfo()函數,發現
cURL support enabled
cURL Information libcurl/7.21.0 OpenSSL/0.9.8q zlib/1.2.3
改爲使用'==='。測試'== false'是有風險的,因爲空字符串,整數'0'等...都測試爲等於false。 '0'是一個完全有效的json響應。 –
@MarcB感謝您的快速回復。是的,我用===替換了==,但是如果腳本在本地工作正常,爲什麼它在服務器上給null。 –
也許谷歌的黑名單你的主機公司或什麼的。不知道。 –