【发布时间】:2016-07-14 07:55:01
【问题描述】:
我正在使用 PHP 向用户发送 GCM 通知。基于他们保存在服务器上的 SQL 中的令牌。但我一次发送的通知限制为 1000 条,
这是我的工作代码,现在我需要对其进行编辑以循环该过程,并分段发送 5000 个通知,1000 个多于 1000 个等。
这是我的 PHP 代码,以及一个我没有在此处发布的简单 HTML,
<?php
$mysqlHost = "";
$mysqlUser = "";
$mysqlPwd = ";
$mysqlDbname = "";
class GCM {
function __construct(){}
public function send_notification($registatoin_ids,$data) {
// GOOGLE API KEY
define("GOOGLE_API_KEY","************");
$url="https://android.googleapis.com/gcm/send";
$fields=array(
"registration_ids"=>$registatoin_ids,
"data"=>$data,
);
//var_dump($fields);
$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_VERIFYPEER,false);
curl_setopt($ch,CURLOPT_POSTFIELDS,json_encode($fields));
$result_gcm=curl_exec($ch);
if($result_gcm===FALSE){
die("Curl failed: ".curl_error($ch));
}
curl_close($ch);
//echo $result_gcm;
}
}
// Create connection
$conn = mysqli_connect($mysqlHost, $mysqlUser, $mysqlPwd, $mysqlDbname);
// Check connection
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
$result = $conn->query("SELECT * FROM users WHERE users_android_token IS NOT NULL AND users_android_token <> ''");
$android_tokens = array();
$x=0;
if ($result->num_rows > 0) {
// output data of each row
while($row = $result->fetch_assoc()) {
$android_tokens[] = $row["users_android_token"];
$x++;
}
} else {
echo "0 results";
}
$conn->close();
$title = $_POST['title'];
$msg = $_POST['message'];
$link = $_POST['link'];
if ($android_tokens != array()) {
$gcm=new GCM();
$data=array("title"=>$title,"description"=>$msg,"link"=>$link);
$result_android=$gcm->send_notification($android_tokens,$data);
}
?>
【问题讨论】:
-
你说的fix是什么意思?
-
我的意思是如何增加数字,我现在可以通过循环过程来完成,分段发送每 1000 个通知,而不是一次。但我不知道如何正确地做到这一点
-
我明白了。不幸的是,1000 是最大值(无论您是否使用 GCM/FCM),唯一的方法是实现一个循环。
-
是的,我知道,我在这里发布问题的方式,我需要帮助来循环它
-
好的。你修改了标题,那就更好了。最初的标题令人困惑。
标签: php android google-cloud-messaging