Firebaseを使用して、アンドロイドアプリケーションに通知を送信しようとしています。私は私のローカルシステムでそれを試して、それは正常に動作しています。これは私のコードです。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を与えています。それと死んだ後
カールに失敗しました。
カールの問題は、ローカルシステムで動作している場合にはうまくいくはずです。
私もするphpinfo()を実行し、
cURL support enabled
cURL Information libcurl/7.21.0 OpenSSL/0.9.8q zlib/1.2.3
代わりに '==='を使用してください。 '== false'のテストは危険です、空の文字列、整数' 0'など...すべてのテストは偽と等しくなります。 '0'は完全に有効なjson応答です。 –
@MarcB迅速な対応をお願いします。はい、私は置き換え==と==しかし、スクリプトが正常にサーバー上でnullを与えるローカルで動作している場合。 –
多分googleのあなたのホスティング会社または何かをブラックリストに載せました。いい考えはありません。 –