【发布时间】:2017-06-18 22:37:54
【问题描述】:
首先,我缺乏英语。请理解我..
我想使用 FCM 为用户推送通知。因此,我制作了一个可以从 Firebase 控制台接收推送通知的 Android 应用程序,但我想通过使用 App Server 而不是 Fire 控制台来使用 FCM。
所以,我制作了一个 PHP 服务器并将其连接到 MYSQL。 MYSQL 具有为每个用户创建的令牌。我和他们一起推送 FCM 消息。我可以看到它工作正常,但我的手机无法收到 PUSH 通知。
我该怎么办?请帮帮我!
<?php
// request FCM
function send_notification ($tokens, $message)
{
$url = 'https://fcm.googleapis.com/fcm/send';
$fields = array(
'registration_ids' => $tokens,
'data' => $message
);
$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_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;
}
// Connect database and get tokens and then call send_notification method
include_once 'config.php';
$conn = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);
$sql = "Select Token From users";
$result = mysqli_query($conn,$sql);
$tokens = array();
if(mysqli_num_rows($result) > 0 ){
while ($row = mysqli_fetch_assoc($result)) {
$tokens[] = $row["Token"];
}
}
mysqli_close($conn);
$message = array("message" => " FCM PUSH NOTIFICATION TEST MESSAGE");
$message_status = send_notification($tokens, $message);
echo $message_status;
?>
【问题讨论】:
-
嗨。请发布您的 Android 端代码和示例消息有效负载。 :)
-
哦,谢谢你的提及,我检查了我的Android端代码......我发现我在manifest中犯了一个错误!!!!对不起....谢谢!!!
-
你好 Jinhyeon。很高兴听到你成功了。请在此处发布答案并将其标记为已接受。它可能会在未来帮助其他人。干杯! :)
-
好的!我只是忘了我必须在清单中写
部分。
标签: php android firebase server firebase-cloud-messaging