我正在嘗試向用戶發送 fcm 通知,但是,在運行此代碼以傳遞訊息時,它需要永遠,它既不發送也不給我任何回應。使用PHP,共享服務器。請幫忙。
$msg = array
(
"title" => 'TEST',"body" => 'test',"icon" => '/setup/favicn.png'
);
$fields = array
(
'to' => 'USER_TOKEN',
'data' => $msg
);
$headers = array
(
'Authorization: key=' . 'MY SERVER 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 );
print_r($result);
uj5u.com熱心網友回復:
$data = array(
'title'=>$title,
'sound' => "default",
'body'=>$body,
'color' => "#79bc64"
);
$fields = array(
'to'=>$to,{//device token}
'notification'=>$data,
'data'=>$data,
"priority" => "high"
);
$headers = array(
'Authorization: key=Server Key', {//after key= just paste your server 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 );
return $result;
uj5u.com熱心網友回復:
謝謝各位,原來服務器無法連接到主機 fcm.googleapis.com。我在從服務器執行了一些 ping 操作后檢查了它。原因是埠問題。FCM 通常使用 5228 埠,但有時也會使用 443、5229 和 5230。此外,FCM 端點的 IP 地址可能會不時更改。此外,Firebase Cloud Messaging (FCM) 不提供特定 IP,因此遇到此問題的任何人都應允許其防火墻接受與此檔案https://www.gstatic.com 中列出的 IP 塊中包含的所有 IP 地址的傳出連接/ipranges/goog.json 這個大名單會定期更新,我們建議每月更新我們的規則。防火墻 IP 限制導致的問題通常是間歇性的,難以診斷。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/345519.html
下一篇:如何根據C#中的串列創建物件
