FCM 消息传递始终响应 503

FCM messaging responding with 503 consistently

我最近实现了 FCM 消息传递,作为向基于 Cordova 的应用程序执行推送通知的一种方式。我的系统每天向个人用户发送 100-1000 条推送通知。

我正在使用 FcmSharp 库联系 FCM 消息服务。 https://github.com/bytefish/FcmSharp 据我所知是使用 FCM HTTP v1 API。

$"https://fcm.googleapis.com/v1/projects/{settings.Project}/messages:send"

目前看来 运行 没问题。然而,我不断从向 FCM 发送消息的服务中记录错误,表明存在故障。

"error": {
    "code": 503,
    "message": "The service is currently unavailable.",
    "errors": [
      {
        "message": "The service is currently unavailable.",
        "domain": "global",
        "reason": "backendError"
      }
    ],
    "status": "UNAVAILABLE"
  }

我正在发送(给 FCMSharp)的邮件格式似乎也正确:

message: {
   "validate_only":false,
   "message":{
    "data":null,
    "notification":{
        "title":"[MyTitle]",
        "body":"[MyBody]"
    },
    "android":{
        "collapse_key":null,
        "priority":"HIGH",
        "ttl":"0s",
        "restricted_package_name":null,
        "data":null,
        "notification":{
            "title":null,
            "body":null,
            "icon":null,
            "color":null,
            "sound":"default",
            "tag":null,
            "click_action":null,
            "body_loc_key":null,
            "body_loc_args":null,
            "title_loc_key":null,
            "title_loc_args":null
        }
    },
    "webpush":null,
    "apns":{
        "headers":null,
        "payload":{
            "aps":{
                "alert":null,
                "badge":0,
                "sound":"default",
                "content-available":0,
                "mutable-content":0,
                "category":null,
                "thread-id":null
            }
        }
    },
    "token":"MyValidToken",
    "topic":null,
    "condition":null
 }

据我所知,该服务未使用下面 post 中提到的 'staging' 环境。

我每天收到数百个这样的 UNAVAILABLE 答案,有时一连几个小时。消息仍在通过,所以我不确定我是否被列入黑名单。如果我使用了错误的 URL 或达到某种节流限制,我在他们的文档中没有看到任何说明。

这是因为 FcmSharp 服务没有实现某些 Google API 所需的未记录的指数退避功能。

有关详细信息,请参阅 GitHub 主题。

https://github.com/bytefish/FcmSharp/issues/31