Как опубликовать sh до android через AWS Шаг Функции и AWS SNS - PullRequest
0 голосов
/ 02 апреля 2020

Я пытаюсь набрать sh на Android телефоны через AWS Шаговые функции и AWS SNS.

Я вижу уведомление в консоли отладки, но оно не отображается появляются. Как правильно отформатировать сообщение? Я пробовал несколько комбинаций, но ни одна из них не работала.

"Publish notification": {
      "Type": "Task",
      "Resource": "arn:aws:states:::sns:publish",
      "Parameters": {
        "Message": {
          "default": "TestTestTest",
          "GCM": {
            "data": {
              "message": "Sample message for Android endpoints"
            }
          },
          "Input": "Hello from Step Functions!"
        },
        "MessageStructure": "json",
        "TargetArn": "arn:aws:sns:eu-central-1:xxxxxxxxx:endpoint/GCM/android/xxxxxxxxxxxxx"
      },
      "Next": "next state"
    }

Уведомление отображается правильно на телефоне, если отправка напрямую через SNS:

"GCM": "{ \"data\": { \"message\": \"Sample message for Android endpoints\" } }"

Я также попробовал пример кода из шага Редактор функций:

"Message": {
  "Input": "Hello from Step Functions!"
}

1 Ответ

0 голосов
/ 03 апреля 2020

Когда речь идет о FCM Pu sh Уведомления, существует два типа типов сообщений , которые поддерживаются , т. Е. «Данные» или «уведомление».

Глядя на полезную нагрузку вашего сообщения, я вижу, что вы используете сообщение типа "data" . Это означает, что:

«данные» сообщения не обрабатываются автоматически SDK FCM и не будут доставляться в центр уведомлений автоматически, поэтому клиенты 'необходимо обрабатывать сообщения этого типа.

Разрешение:

Вам потребуется использовать полезную нагрузку сообщений типа уведомление , поскольку вы хотите, чтобы уведомление pu sh появлялось на устройстве конечного пользователя. См. Пример определения конечного автомата, который я написал:

{
"StartAt": "Publish to SNS",
"States": {
  "Publish to SNS": {
    "Type": "Task",
    "Resource": "arn:aws:states:::sns:publish",
    "Parameters": {
      "TargetArn": "arn:aws:sns:us-east-1:xxxxxxx:endpoint/GCM/AWSNS-Android/xxxxx-xxxxxxx-xxxxxxx",
      "MessageStructure": "json",
      "Message": {"GCM": "{ \"notification\": { \"body\": \"sample test push\" } }"}
    },
    "End": true
    }
  }
}

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

...