Я недавно внедрил обмен сообщениями FCM как средство для отправки push-уведомлений в приложение на основе Cordova. Моя система отправляет 100-1000 push-уведомлений в день отдельным пользователям.
Я связываюсь со службой обмена сообщениями FCM с помощью библиотеки FcmSharp. https://github.com/bytefish/FcmSharp, насколько я могу судить, использует API FCM HTTP v1.
$"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
}
Насколько я могу судить, служба не использует "промежуточную" среду, упомянутую в посте ниже.
Сервис FCM недоступен nack
Я получаю сотни таких UNAVAILABLE
ответов в день, иногда часами подряд. Сообщения все еще проходят, поэтому я не уверен, что попал в черный список. Я не вижу в их документации ничего, что бы указывало на то, что я использую неправильный URL-адрес или превышаю какой-то лимит регулирования.