【问题标题】:Can't send FCM PUSH using App server无法使用应用服务器发送 FCM PUSH
【发布时间】: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


【解决方案1】:

我忘了我必须在清单中写一部分!....对不起,这是我的错误。因此,该服务器的代码运行良好!

这是我关于清单的示例代码

enter code here


<service android:name=".utils.service.MyFirebaseMessagingService">
            <intent-filter>
                <action android:name="com.google.firebase.MESSAGING_EVENT"/>
            </intent-filter>
        </service>

        <service android:name=".utils.service.MyFirebaseInstanceIDService">
            <intent-filter>
                <action android:name="com.google.firebase.INSTANCE_ID_EVENT"/>
            </intent-filter>
        </service>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-09-27
    • 2017-10-05
    • 1970-01-01
    • 1970-01-01
    • 2017-05-26
    • 2019-08-07
    • 1970-01-01
    • 2020-09-14
    相关资源
    最近更新 更多