Обмен сообщениями FCM отвечает 503 последовательно - PullRequest
0 голосов
/ 04 сентября 2018

Я недавно внедрил обмен сообщениями 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-адрес или превышаю какой-то лимит регулирования.

1 Ответ

0 голосов
/ 18 сентября 2018

Это произошло из-за того, что служба FcmSharp не реализовала недокументированную функцию экспоненциальной отсрочки, которая требуется некоторым Google Apis.

См. Ветку GitHub для получения дополнительной информации.

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

...