php - 如何将 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);
解决方案
curl_exec 默认将响应字符串发送到标准输出,在您的情况下是浏览器。
要将结果存储在变量中,您应该将 CURLOPT_RETURNTRANSFER 设置为 true。
我认为这会奏效。
不要告诉我你也试过了,结果是阴性的。:-)
推荐阅读
- reactjs - 当我使用 flatList 时,ref.current 总是用反应钩子返回 null
- scala - getClass.getFields 从 Scala 反射库返回字段,而不是从包中返回字段
- javascript - 当外部源更新文本时,防止 ckeditor 触发 set 回调
- c# - 使用 1 次后如何取消动画?
- javascript - 根据元素内的类显示功能 - Javascript vanilla
- python - 使用 python 文件作为 qt5 文件
- c++ - 使第二类的构造函数成为第一类中的友元函数
- r - 变量比样本多得多的网络模型
- excel - 如何通过数字引用表中的多个列
- c# - 是否可以使用 JIRA SDK 11.2 版运行 JQL 查询