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 主题。
我最近实现了 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 主题。