获取空结果 api firebase [FCM]
Get empty result api firebase [FCM]
我保存了一些与我的 Firebase 开发环境相关联的手机 registration_codes。一旦我通过 api 发送手动通知,我就会收到 Firebase 本人的空反馈。调试后发现通知没有发送。我的调用有什么问题,因为我在示例中进行的调用是相同的,并且 registration_code 正是我从 Firebase 的 Flutter 库收到的代码。
代码:
$response = Http::withToken(env('FCM_TOKEN'))->post(self::GLOBAL_URL, [
'registration_ids' => $request->users,
'data' => [
'title' => $request->title,
'message' => $request->message,
],
]);
return response()->json(["result" => $response]);
结果:
{
"result": {
"cookies": {},
"transferStats": {}
}
}
首先,你不应该直接使用env
,because your .env
file will not be used when the configuration is cached。相反,您应该在 config/services.php
文件中设置此值:
return [
'firebase' => [
'fcm_token' => env('FCM_TOKEN')
]
];
其次,您的问题是您正在序列化 Illuminate\Http\Client\Response
对象而不是获取其值。要 return 您请求的 JSON 结果,请调用 json()
:
$response = Http::withToken(config('firebase.fcm_token'))->post(self::GLOBAL_URL, [
'registration_ids' => $request->users,
'data' => [
'title' => $request->title,
'message' => $request->message,
],
])->json(); // Notice the `json` call here
return response()->json(["result" => $response]);
如果您检查 Illuminate\Http\Client\Response
对象本身,您会看到它包含 cookies
和 transferStats
属性(具体来说,它们位于 PendingRequest
对象上)。这就是您在结果中看到这一点的原因。
我保存了一些与我的 Firebase 开发环境相关联的手机 registration_codes。一旦我通过 api 发送手动通知,我就会收到 Firebase 本人的空反馈。调试后发现通知没有发送。我的调用有什么问题,因为我在示例中进行的调用是相同的,并且 registration_code 正是我从 Firebase 的 Flutter 库收到的代码。
代码:
$response = Http::withToken(env('FCM_TOKEN'))->post(self::GLOBAL_URL, [
'registration_ids' => $request->users,
'data' => [
'title' => $request->title,
'message' => $request->message,
],
]);
return response()->json(["result" => $response]);
结果:
{
"result": {
"cookies": {},
"transferStats": {}
}
}
首先,你不应该直接使用env
,because your .env
file will not be used when the configuration is cached。相反,您应该在 config/services.php
文件中设置此值:
return [
'firebase' => [
'fcm_token' => env('FCM_TOKEN')
]
];
其次,您的问题是您正在序列化 Illuminate\Http\Client\Response
对象而不是获取其值。要 return 您请求的 JSON 结果,请调用 json()
:
$response = Http::withToken(config('firebase.fcm_token'))->post(self::GLOBAL_URL, [
'registration_ids' => $request->users,
'data' => [
'title' => $request->title,
'message' => $request->message,
],
])->json(); // Notice the `json` call here
return response()->json(["result" => $response]);
如果您检查 Illuminate\Http\Client\Response
对象本身,您会看到它包含 cookies
和 transferStats
属性(具体来说,它们位于 PendingRequest
对象上)。这就是您在结果中看到这一点的原因。