#amazon-web-services #react-native #expo #amazon-sns
#amazon-веб-сервисы #react-native #выставка #amazon-sns
Вопрос:
Я пытаюсь использовать AWS SNS для отправки своих push-уведомлений. Пока я просто тестирую. Я уже создал платформу и конечную точку в SNS. Когда я отправляю push-уведомление из консоли SNS, я получил его без проблем. Вот как я отправляю его оттуда:
{"GCM": "{ "notification": {"title": "Test", "body": "It works" } }"}
Теперь я пытаюсь программно отправлять push-уведомления с помощью Javascript SDK, но я не могу заставить его работать правильно. Я тестирую приложение на своем реальном телефоне Android. Который подключается к моему серверному приложению, размещенному локально. Когда приложение открывается, я нажимаю кнопку, которая отправляет http-запрос в мое локальное серверное приложение, которое затем пытается отправить push-уведомление.
Странно то, что я получаю сообщение о том, что push-уведомление было отправлено, но я никогда не получаю его на свой телефон:
Push notification sent successfully!!!! {
ResponseMetadata: { RequestId: 'XXX-5913-996f-b8ec0c010eac' },
MessageId: 'XXX-5308-98e3-0689b03df4b7'
}
Это код, который у меня есть в моем локальном серверном приложении:
module.exports.sendPushNotification = () => {
var sns = new AWS.SNS({ apiVersion: '2010-03-31', region: 'us-east-1'});
var params = {
Message: `{
"GCM": "{ "notification": {"title": "Test", "body": "It works" } }"
}`,
TargetArn: "######My Device ARN#######"
};
sns.publish(params, function(err, data) {
if (err) {
console.log("There was an error sending the push notification----> ", err)
} // an error occurred
else{
console.log("Push notification sent successfully!!!! ", data);
} // successful response
});
}
Я попытался изменить форматирование сообщения и все равно ничего. Что я делаю не так?
Ответ №1:
Спасибо человеку по имени «Джитеш Праджапати», который дал мне ответ на это в Facebook. Вот как это работает:
var sns = new AWS.SNS({ apiVersion: '2010-03-31', region: 'us-east-1'})
let notification = JSON.stringify({
'notification': {
'title': "Notification Title",
'body': "Your message goes here",
'data': {}
}
});
var params = {
Message: JSON.stringify({
GCM: notification
}),
MessageStructure: "json",
TargetArn: "### Your target ARN ###"
};
sns.publish(params, function(err, data) {
if (err) {
console.log("There was an error sending the push notification----> ", err)
} // an error occurred
else{
console.log("Push notification sent successfully!!!! ", data);
} // successful response
});