AWS Pinpoint / Ionic - ошибка «Ресурс не найден» при попытке отправить push-уведомление через CLI - PullRequest
0 голосов
/ 05 июля 2018

Я новичок в программировании с сервисами AWS, поэтому некоторые фундаментальные вещи для меня довольно сложны. Недавно меня попросили разработать приложение, использующее Amazon Pinpoint для отправки push-уведомлений, в качестве теста для рассмотрения будущих реализаций.

Как вы можете видеть в другом вопросе, который я разместил здесь ( Amazon Pinpoint и Ionic - Push-уведомления не работают, когда приложение работает в фоновом режиме ), у меня возникли проблемы при попытке отправить push-уведомления пользователям, когда мой приложение работает в фоновом режиме. Приложение было разработано с использованием Ionic, выполнив эти шаги .

Когда я почти сдался, я решил попытаться отправить толчки напрямую через Firebase , и это, наконец, сработало. Некоторые исследования привели меня к этому вопросу , в котором другой пользователь описал проблему как возникающую только в AWS Console, поэтому решение будет заключаться в использовании CLI. После небольшого поиска я нашел это руководство о том, как отправлять точные сообщения пользователям, используя CLI , и это, похоже, то, что я хотел. Объединив его с этой документацией о плагине phonegap , я смог создать JSON, который, как я думал, мог бы стать решением:

{
    "ApplicationId":"io.ionic.starter",
    "MessageRequest":{
        "Addresses": {
            "": {
                "BodyOverride": "",
                "ChannelType": "GCM",
                "Context": {
                    "": ""
                },
                "RawContent": "",
                "Substitutions": {},
                "TitleOverride": ""
            }
        },
        "Context": {
            "": ""
        },
        "Endpoints": {"us-east-1": {
            "BodyOverride": "",
            "Context": {},
            "RawContent": "",
            "Substitutions": {},
            "TitleOverride": ""
          }
        },
        "MessageConfiguration": {

            "GCMMessage": {
                "Action": "OPEN_APP",
                "Body": "string",
                "CollapseKey": "",
                "Data": {
                    "": ""
                },
                "IconReference": "",
                "ImageIconUrl": "",
                "ImageUrl": "",
                "Priority": "High",
                "RawContent": "{\"data\":{\"title\":\"sometitle\",\"body\":\"somebody\",\"url\":\"insertyourlinkhere.com\"}}",
                "RestrictedPackageName": "",
                "SilentPush": false,
                "SmallImageIconUrl": "",
                "Sound": "string",
                "Substitutions": {},
                "TimeToLive": 123,
                "Title": "",
                "Url": ""
            }
        }
    }
}

Но когда я выполнил его в cmd с aws pinpoint send-messages --color on --region us-east-1 --cli-input-json file://test.json, я получил ответ An error occurred (NotFoundException) when calling the SendMessages operation: Resource not found.

Полагаю, я не написал файл JSON правильно, так как я делаю это впервые. Поэтому, если кто-то из вас знает, что я делаю неправильно, независимо от того, какой шаг я неправильно понял, я буду признателен за помощь!

1 Ответ

0 голосов
/ 17 июля 2018

Поле «Конечные точки» в запросе на сообщение касается идентификатора конечной точки (идентификатор, связанный с устройством конечного пользователя при регистрации, чтобы точно определить, а не регион.)

В случае, если вы еще не зарегистрировали конечные точки с помощью Pinpoint, вы можете использовать поле «Адреса». После регистрации канала GCM в Amazon Pinpoint вы можете получить токен устройства GCM со своего устройства и указать его здесь.

Вот пример отправки прямых сообщений с помощью Amazon Pinpoint. Примечание. В примере рассматривается отправка SMS-сообщения. Сначала вы должны были зарегистрировать канал SMS и создать конечную точку с идентификатором конечной точки как «test-endpoint1». В противном случае вы можете использовать поле «Адреса» вместо поля «Конечные точки».

 aws pinpoint send-messages --application-id $APP_ID --message-request '{"MessageConfiguration": {"SMSMessage":{"Body":"hi hello"}},"Endpoints": {"test-endpoint1": {}}}

Также примечание : ApplicationId генерируется Pinpoint. Когда вы заходите на консоль Pinpoint и выбираете свое приложение, URL будет иметь формат

https://console.aws.amazon.com/pinpoint/home/?region=us-east-1#/apps/someverybigstringhere/

Здесь "someverybigstringhere" - это ApplicationId, а не имя, которое вы даете своему проекту.

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