Определить состояние push-уведомления FCM «Успешно», но не получено в консоли / устройстве - PullRequest
0 голосов
/ 21 октября 2019

У меня есть приложение для Android, и я пытаюсь отправить ему push-уведомления через Amazon Pinpoint.

  • Мое приложение может получать push-уведомления FCM, отправленные через Postman, с моим API-ключом. .
  • Эти уведомления появляются как на консоли FCM, так и на устройстве.

Затем я настраиваю push-уведомления FCM с помощью одного и того же ключа API и проверяю их "«Тестовые сообщения». enter image description here

  • Средство проверки сообщений сообщает, что сообщение было успешно отправлено.
  • сообщение НЕ появляется на устройстве или в консоли FCM.
  • Я получаю аналогичный успешный ответ, используя точный CLI или отправляя его через приложение RAILS.
  • Сообщения APNS работают сквозным с точным указанием для моего приложения.

Iполучить успешный ответ для сообщений FCM, отправленных с помощью инструмента тестирования сообщений, через интерфейс командной строки и отправки из моего приложения Rails, но ни один из них не появится в консоли FCM или не прибудет на устройство.

Единственное, что язаметил, что в настройках, которые не соответствуют документации 1027 *, у Pinpoint, похоже, нет места для добавления ID отправителя , только ключ API. (Тем не менее, я не уверен, что идентификатор отправителя действительно необходим, поскольку я могу отправить запрос POST напрямую только с помощью ключа API, и FCM получит его ... возможно, это устарело ??)

Если для некоторыхпричина, по которой фактически требуется идентификатор отправителя, где он будет введен?

Что еще я могу сделать для его устранения? enter image description here

Ответы [ 2 ]

0 голосов
/ 02 ноября 2019

Стандартным сообщением является сообщение с данными по умолчанию, когда оно отправляется в firebase. Чтобы отправить уведомление, вам необходимо отправить его как необработанное сообщение. Вот пример для APN и Firebase

  "APNSMessage": {
    "aps": {
      "alert": {
        "title": "Hello Apple",
        "subtitle": "Notification test",
        "body": "From Pinpoint"
      }
    }
  },
  "GCMMessage": {
    "notification": {
      "title": "Hello Android",
      "body": "From PinPoint"
    }
  },
  "ADMMessage": {
    "data": {
      "message": ""
    }
  },
  "BaiduMessage": {
    "title": "",
    "description": ""
  }
}```
0 голосов
/ 30 октября 2019

"Мое приложение может получать push-уведомления FCM, отправленные через Postman с моим ключом API, и эти уведомления появляются как на консоли FCM, так и на устройстве"

Из приведенной выше цитаты, поскольку при тестировании с FCM ( Firebase Cloud Messaging ) непосредственно вы получаете push-уведомление на своем устройстве, тогда я подозреваю, что проблема может быть связана сдве вещи, т.е. класс PushListener или тип сообщения push-уведомления. Позвольте мне объяснить :

Когда дело касается push-уведомлений FCM, существует два типа типов сообщений , которые поддерживаются, то есть «Данные или «Уведомление» . Таким образом, консоль FCM / SDK по умолчанию отправляет push-уведомление типа «Уведомление» . Этот тип сообщения обрабатывается FCM SDK автоматически и доставляется в панель уведомлений приложения. С другой стороны, «Данные» сообщения не обрабатываются SDK FCM, и клиентам необходимо обрабатывать сообщения такого типа.

Amazon Pinpoint, в настоящее времяпо умолчанию используется «Данные» тип сообщения для стандартного сообщения, что означает, что клиентское приложение должно реализовывать методы (например, реализовать класс PushListenerClass, который принимает полезную нагрузкуи отображает входящее уведомление в области уведомлений) для обработки полезной нагрузки и принятия действий.

Можете ли вы подтвердить, есть ли в вашем коде приложения класс PushListener? Если нет, то вы можетеобратитесь к следующим статьям, в которых подробно объясняется, как обрабатывать сообщения FCM (уведомления и данные) в Android:

https://www.zoftino.com/android-notification-data-messages-from-app-server-using-firebase-cloud-messaging

https://aws -amplify.github.io /docs / android / push-уведомления

Если вы хотите отправить push-уведомление типа «Уведомление» , тогда вам нужно будет использовать:

  1. RawContent свойство при использовании Pinpoint SDK / REST API / CLI. Свойство RawContent необходимо определить / указать в виде строки в формате JSON, как показано ниже:

    'RawContent' : '{"notification":{"title":"TEST PUSH NOTIFICATION","body":"Hello, this is a test push notification!"}}', // If you define 'RawContent' here, everything ("message") else in the "MessageConfiguration" will be ignored.
    
  2. Свойство RawMessage при использовании консоли Pinpoint, как показано ниже, где вы заменяете «данные» на «уведомление»:

enter image description here

Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...