使用PHP的Android Firebase推动通知



我为我的应用程序实现了FCM。我正在使用PHP发送DB中注册ID的通知。我想为每个用户发送一条特定消息。现在,当我推开通知时,我会为所有用户收到相同的消息。

示例:我在DB中有两个注册用户:1-用户叫约翰,他的自定义消息是"欢迎"2-用户称为Marco,他的自定义消息是"快乐的出生日"

现在,当我推开通知时,所有两个用户都收到相同的消息"欢迎"。

这是我的代码:

<?php 
function send_notification ($tokens, $message)
{
$url = 'https://fcm.googleapis.com/fcm/send';
$fields = array(
   'registration_ids' => $tokens,
   'data' => $message,
   'priority'             => "high",
  );
$headers = array(
  'Authorization:key =  FCM Server 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);           
   if ($result === FALSE) {
       die('Curl failed: ' . curl_error($ch));
   }
   curl_close($ch);
   return $result;
   }
   include("conn.php");
   mysql_select_db($db, $conn);
   $query_users = sprintf("Select token, message From users");
   $users = mysql_query($query_users, $conn) or die(mysql_error());
   $row_users = mysql_fetch_assoc($users);
   $totalRows_users = mysql_num_rows($users);
   if($totalRows_users > 0 ) {
    do { 
      $tokens[] = $row_users["token"];
      $message = $row_users["message"];
   } while ($row_users = mysql_fetch_assoc($users));
   }
   $message_status = send_notification($tokens, $message);
   echo $message_status;
?>

您可以一次发送带有多个令牌的FCM(如果我不误解的话,可以使用多个令牌限制(,但是,您不能随附多个消息

您发送的消息是查询中的最后一个记录中的消息

 $message = $row_users["message"];

如果您想发送不同的消息,则需要致电

send_notification($tokens, $message);

多次。

相关内容

  • 没有找到相关文章

最新更新