我将Fire-base Notification CRUL Code与Codeigniter集成在一起。有时我会收到错误,但不是所有时间。
我已将下面的代码集成到控制器
控制器代码
override fun onReceive(context: Context?, intent: Intent?) {
Log.d("JJJ", "onReceive")
storageClearSchedular = StorageClearSchedular(context!!, context!!.getSystemService(Context.ALARM_SERVICE) as AlarmManager)
storageClearSchedular.setAllSchedulars()
型号代码
$newDate=Date('m-d-Y H:i:s');
$test_str=$user->us_name. ' Clocked at '.$newDate;
$res = array();
$res['data']['title'] = $user->us_name.' - Clocked In';
$res['data']['is_background'] = "TRUE";
$res['data']['message'] = $test_str;
$res['data']['image'] = 'http://api.androidhive.info/images/minion.jpg';
$res['data']['payload'] = 'individual';
$res['data']['timestamp'] = date('Y-m-d G:i:s');
$res['data']['act_tab'] = 0;
$cur_id1=$this->db->query("Select token from devices")->result();
foreach($cur_id1 as $cur_id) {
$fields = array('to' => $cur_id->token,'data' => $res);
$this->notif_model->sendPushNotification($fields);
}
有时我正在运行此错误
卷曲失败:OpenSSL SSL_connect:与fcm.googleapis.com:443相关的SSL_ERROR_SYSCALL
答案 0 :(得分:2)
尝试添加
curl_setopt($ch, CURLOPT_SSLVERSION, 3);
答案 1 :(得分:0)
function sendPushNotification($fields) {
// Set POST variables
$url = 'https://fcm.googleapis.com/fcm/send';
$headers = array(
'Authorization: key=MyServerKey',
'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_SSLVERSION, 3);
// Disabling SSL Certificate support temporarly
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($fields));
// Execute post
$result = curl_exec($ch);
if ($result === FALSE) {
die('Curl failed: ' . curl_error($ch));
}
// Close connection
curl_close($ch);
return $result;
}