如何在 kreait/laravel-firebase 中使用带有令牌分块的 sendMulticast 发送通知?

问题描述 投票:0回答:1

我正在使用 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"
      ]
    ]
php laravel firebase push-notification firebase-cloud-messaging
1个回答
0
投票

这里是包维护者👋🏻😅

您使用的是旧版本的软件包或 SDK,该软件包或 SDK 仍然使用同时已弃用/关闭的 FCM API。请升级到最新版本的软件包和/或 SDK 以使其再次工作。

此外,在最新版本中,无需对令牌进行分块,因为所有消息都是一一异步发送的。如果您有太多令牌而遇到内存问题,您仍然可以这样做(诚然不太可能😅)。

© www.soinside.com 2019 - 2024. All rights reserved.