java — Обмен сообщениями в облаке Google: отправьте сообщение & quot; всем & quot; пользователи

Я следую этот урок понять систему GCM. У меня есть вопрос относительно этой части:

Можно отправлять сообщения каждому зарегистрированному пользователю, но как изменить этот код, чтобы я мог отправить одно сообщение ВСЕМ зарегистрированным устройствам?

Я уже искал ответы:

отправка push-уведомлений на несколько устройств Android с помощью GCM

а также

Отправка push-уведомлений на несколько устройств

(почти тот же вопрос) — но не смог найти ответа на мой вопрос.

<body>
<?php
include_once 'db_functions.php';
$db = new DB_Functions();
$users = $db->getAllUsers();
if ($users != false)
$no_of_users = mysql_num_rows($users);
else
$no_of_users = 0;
?>
<div class="container">
<h1>No of Devices Registered: <?php echo $no_of_users; ?></h1>
<hr/>
<ul class="devices">
<?php
if ($no_of_users > 0) {
?>
<?php
while ($row = mysql_fetch_array($users)) {
?>
<li>
<form id="<?php echo $row["id"] ?>" name="" method="post" onsubmit="return sendPushNotification('<?php echo $row["id"] ?>')">
<label>Name: </label> <span><?php echo $row["name"] ?></span>
<div class="clear"></div>
<label>Email:</label> <span><?php echo $row["email"] ?></span>
<div class="clear"></div>
<div class="send_container">
<textarea rows="3" name="message" cols="25" class="txt_message" placeholder="Type message here"></textarea>
<input type="hidden" name="regId" value="<?php echo $row["gcm_regid"] ?>"/>
<input type="submit" class="send_btn" value="Send" onclick=""/>
</div>
</form>
</li>
<?php }
} else { ?>
<li>
No Users Registered Yet!
</li>
<?php } ?>
</ul>
</div>
</body>

Я пытался изменить код, но с моим изменением он не работает ..

Я хочу поместить все regID как массив в sendPushNofiy …

    <body>
<?php
include_once 'db_functions.php';
$db = new DB_Functions();
$users = $db->getAllUsers();
if ($users != false)
$no_of_users = mysql_num_rows($users);
else
$no_of_users = 0;
?>
<div class="container">
<h1>No of Devices Registered: <?php echo $no_of_users; ?></h1>
<hr/>
<ul class="devices">
<?php
if ($no_of_users > 0) {
?>
<?php

<li>
$rows = array();

while(($row = mysql_fetch_array($users))) {
$rows[] = $row['id'];

}
<form id="<?php echo $rows ?>" name="" method="post" onsubmit="return sendPushNotification('<?php echo $rows ?>')">
<label>Name: </label> <span><?php echo $row["name"] ?></span>
<div class="clear"></div>
<label>Email:</label> <span><?php echo $row["email"] ?></span>
<div class="clear"></div>
<div class="send_container">
<textarea rows="3" name="message" cols="25" class="txt_message" placeholder="Type message here"></textarea>
<input type="hidden" name="regId" value="<?php echo $row["gcm_regid"] ?>"/>
<input type="submit" class="send_btn" value="Send" onclick=""/>
</div>
</form>
</li>
<?php
} else { ?>
<li>
No Users Registered Yet!
</li>
<?php } ?>
</ul>
</div></body>

с этим я могу получить все региды в строках массива … но как я могу перенести массив в форму?

   while ($row = mysql_fetch_array($users)) {
$rows[] = $row["gcm_regid"];

}

моя проблема заключается в том, как отправить мой массив «row» в send_message.php?

$ registatoin_ids = array ($ regId); << он уже обрабатывает массив, но мой ввод работает только с одним значением, я хочу передать массив ^^

РЕДАКТИРОВАТЬ:
send_message.php

if (isset($_GET["regId"]) && isset($_GET["message"])) {
$regId = $_GET["regId"];
$message = $_GET["message"];

include_once './GCM.php';

$gcm = new GCM();

$registatoin_ids = array($regId);
$message = array("price" => $message);

$result = $gcm->send_notification($registatoin_ids, $message);

echo $result;
}
?>

2

Решение

Вы несете ответственность за ведение списка регистрационных идентификаторов всех зарегистрированных пользователей. Нет API-вызова для отправки сообщения всем зарегистрированным пользователям. Вы можете отправить на сервер GCM запрос до 1000 регистрационных идентификаторов. Если у вас более 1000 зарегистрированных пользователей, вам придется разделить их на несколько запросов.

6

Другие решения

<?php
if (isset($_GET["message"])) {
include_once 'db_functions.php';
$db = new DB_Functions();
$users = $db->getAllUsers();
$regIds = array();
if ($users != false){
while ($row = mysqli_fetch_array($users)) {
$regIds[] = $row["gcm_regid"];
}
}

include_once './GCM.php';

$gcm = new GCM();

$registatoin_ids = $regIds;
$message = "array("price" => $_GET["message"])";

$result = $gcm->send_notification($registatoin_ids, $message);

echo $result;
}
?>
2

По вопросам рекламы [email protected]