首页 > 解决方案 > 如何将 FCM 推送通知结果存储到变量中?

问题描述

这是我的代码:

<?php
$url = "https://fcm.googleapis.com/fcm/send";
$token = "*****";
$serverKey = "*****"; 

$title = "This is Title";
$body = "Body of the message";
$param_arr = array();
$param_arr['page_name'] = "notification";
$param_arr['id'] = "10";

$notification = array('title' =>$title , 'is_background' =>'' , 'text' => $body, 'image' => '', 'payload' => $param_arr);

$arrayToSend = array('to' => $token, 'notification' => $notification, 'data' => $notification,'priority'=>'high', 'timestamp'=>date("Y-m-d H:i:s"));
$json = json_encode($arrayToSend);
$headers = array();
$headers[] = 'Content-Type: application/json';
$headers[] = 'Authorization: key='. $serverKey;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST,"POST");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, false);
curl_setopt($ch, CURLOPT_HTTPHEADER,$headers);
curl_setopt($ch, CURLOPT_POSTFIELDS, $json);
curl_setopt($ch, CURLOPT_ENCODING,'');
$response = curl_exec($ch);
curl_close($ch);

?>

并在浏览器中显示结果:

{"multicast_id":5813147991035715680,"success":0,"failure":1,"canonical_ids":0,"results":[{"error":"InvalidRegistration"}]}

现在我需要从该结果中获取成功或失败状态,如何获取状态并存储到变量?

$response 给出布尔响应

var_dump($response);

标签: phpcurlpush-notification

解决方案


curl_exec 默认将响应字符串发送到标准输出,在您的情况下是浏览器。

要将结果存储在变量中,您应该将 CURLOPT_RETURNTRANSFER 设置为 true。

我认为这会奏效。

不要告诉我你也试过了,结果是阴性的。:-)


推荐阅读