【问题标题】:PHP + Android CURL Firebase Notification ErrorPHP + Android CURL Firebase 通知错误
【发布时间】:2016-08-30 14:31:53
【问题描述】:

我正在尝试从 PHP 向 Android 应用程序发送通知。我的 PHP 代码在这里。

<?php
require "int.php";
$message = $_POST['message'];
$title = $_POST['title'];
$path_to_fcm = 'https://fcm.googleapis.com/fcm/send';
$server_key = "1:485869546397:android:bd503a78b6c26c35";
$sql = "select fcm_token from fcm_info";
$result = mysqli_query($con,$sql);
$row = mysqli_fetch_row($result);
$key = $row[0];
$headers = array(
    'Authorization:key=' .$server_key,
    'Content-Type:application/json'
);

$fields = array('to'=>$key,
    'notification'=>array('title'=>$title,'body'=>$message));

$payload = json_encode($fields);

echo $payload;

$curl_session = curl_init();
curl_setopt($curl_session, CURLOPT_URL, $path_to_fcm);
curl_setopt($curl_session, CURLOPT_POST, true);
curl_setopt($curl_session, CURLOPT_HTTPHEADER, $headers);
curl_setopt($curl_session, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl_session, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl_session, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4 );
curl_setopt($curl_session, CURLOPT_POSTFIELDS, $payload);
$result = curl_exec($curl_session);
echo $result;
?>

然后我将数据发布到 mycode 我给出了这个输出:

我可以从 FireBase 控制台发送通知。并且服务器 id 代码是正确的。我不知道这是怎么回事?你能给一个建议或任何方法来解决这个问题吗?谢谢...

【问题讨论】:

  • 50x 错误通常意味着问题出在服务器端。您可以在这里提出问题:firebase.google.com/support
  • 您收到的下游消息响应正文不包含documentation 中定义的某些字段,因此您最好按照@pawelo 的建议联系firebase 支持

标签: php android curl firebase firebase-cloud-messaging


【解决方案1】:

这是经过测试的代码,您可以使用以下代码发送通知。

public function sendGCM($message, $registration_ids) {
    //FCM URL
    $url = "https://fcm.googleapis.com/fcm/send";

    //prepare data
    $fields = array (
        'registration_ids' => array ($registration_ids),
        'data' => array ("message" => $message)
    );
    $fields = json_encode ( $fields ); 

    //header data
    $headers = array ('Authorization: key=<YOUR_API_KEY>', 'Content-Type: application/json');

    //initiate curl request
    $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_POSTFIELDS, $fields );

    // execute curl request
    $result = curl_exec ( $ch );

    //close curl request
    curl_close ( $ch );

    //return output
    return $result;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-05-02
    • 2014-07-23
    • 1970-01-01
    • 1970-01-01
    • 2021-02-02
    • 2014-05-30
    • 2020-09-15
    相关资源
    最近更新 更多