我正在使用 kreait/laravel-firebase 包向大量用户发送推送通知。由于我需要向大量设备令牌发送通知,因此我尝试使用 sendMulticast 方法并对令牌进行分块,以遵守 Firebase 每个请求 500 个令牌的限制。
$all_data = array_chunk($recipients, 500); // Split tokens into chunks of 500
foreach ($all_data as $deviceTokens) {
$message = CloudMessage::new()
->withNotification($notification)
->withData([
'extra_data' => 'some_data',
]);
// Send the message to the chunk of tokens
$result = $messaging->sendMulticast($message, $deviceTokens);
dd($result); // Check the result for each batch
}
显示以下错误:
#message: "Operation is not implemented, or supported, or enabled."
#code: 501
#file: "C:\xampp\htdocs\sajida-fieldforce\vendor\kreait\firebase-php\src\Firebase\Exception\Messaging\MessagingError.php"
#line: 22
#errors: array:1 [▼
"error" => array:3 [▼
"code" => 501
"message" => "Operation is not implemented, or supported, or enabled."
"status" => "UNIMPLEMENTED"
]
]
这里是包维护者👋🏻😅
您使用的是旧版本的软件包或 SDK,该软件包或 SDK 仍然使用同时已弃用/关闭的 FCM API。请升级到最新版本的软件包和/或 SDK 以使其再次工作。
此外,在最新版本中,无需对令牌进行分块,因为所有消息都是一一异步发送的。如果您有太多令牌而遇到内存问题,您仍然可以这样做(诚然不太可能😅)。