AWS Pinpoint Push Notification for NodeJS 没有声音
AWS Pinpoint Push Notification for NodeJS has no sound
目前我有这个参数来精确创建消息,
{
ApplicationId: config.PROJECT_ID,
MessageRequest: {
Addresses: {
[token]: {
ChannelType: 'APNS'
}
},
MessageConfiguration: {
APNSMessage: {
Title: notification.title,
Body: notification.message
}
}
}
}
我的代码基于这里 https://docs.aws.amazon.com/pinpoint/latest/developerguide/send-messages-push.html,我使用邮递员检查了它,当推送通知出现时没有声音,我注意到没有声音参数可用,如何在我的通知中添加声音?
在 AWS Pinpoint Test Messaging 中我使用了这个参数并且它按预期工作,但是当我尝试它并使用上面的代码应用它时,它说 "Unexpected key 'aps' found in params.MessageRequest.MessageConfiguration"
{
APNSMessage: {
aps: {
alert: {
title: notification.title,
body: notification.message
},
sound: 'default'
}
}
}
我需要在 NodeJS 中使用 aws-sdk 添加默认值的声音
Amazon Pinpoint SendMessages API 不 expect/allow 使用标准消息发送推送通知时要指定的 "aps" 字典。
要使用标准消息发送带声音的推送通知,请参考以下工作示例代码片段:
// Specify the parameters to pass to the API.
var params = {
ApplicationId: '4fd13a40xxxxxxxx',
MessageRequest: {
Addresses: {
["token from APNS"]: {
ChannelType: 'APNS'
}
},
MessageConfiguration: {
APNSMessage: {
Title: 'TEST',
Body: 'This is a sample push notification sent from Amazon Pinpoint by using Nodejs SDK',
Sound: 'default',
}
}
}
};
要使用 "aps" 字典发送带声音的推送通知,则需要使用:
( i ) RawContent 属性:如果使用 Pinpoint SDK/REST API/CLI。RawContent 属性 需要 defined/specified 作为 JSON 格式的字符串,如下所示:
// Specify the parameters to pass to the API.
var params = {
ApplicationId: '4fd13a40xxxxxxxx',
MessageRequest: {
Addresses: {
"token from APNS": {
ChannelType: 'APNS'
}
},
MessageConfiguration: {
APNSMessage: {
RawContent : '{"aps":{"alert":"Hello, this is a test push notification!","sound":"default"}}' // If you define 'RawContent' here, everything ("message") else in the "MessageConfiguration" will be ignored.
}
}
}
};
( ii ) RawMessage 属性 :如果使用 Pinpoint 控制台,如下图所示:
{
APNSMessage: {
aps: {
alert: {
title: notification.title,
body: notification.message
},
sound: 'default'
}
}
}
这解释了为什么当您在 AWS Pinpoint 控制台中进行测试并选择“测试消息传递和原始消息”时,通知可以正常工作并发出声音。
目前我有这个参数来精确创建消息,
{
ApplicationId: config.PROJECT_ID,
MessageRequest: {
Addresses: {
[token]: {
ChannelType: 'APNS'
}
},
MessageConfiguration: {
APNSMessage: {
Title: notification.title,
Body: notification.message
}
}
}
}
我的代码基于这里 https://docs.aws.amazon.com/pinpoint/latest/developerguide/send-messages-push.html,我使用邮递员检查了它,当推送通知出现时没有声音,我注意到没有声音参数可用,如何在我的通知中添加声音?
在 AWS Pinpoint Test Messaging 中我使用了这个参数并且它按预期工作,但是当我尝试它并使用上面的代码应用它时,它说 "Unexpected key 'aps' found in params.MessageRequest.MessageConfiguration"
{
APNSMessage: {
aps: {
alert: {
title: notification.title,
body: notification.message
},
sound: 'default'
}
}
}
我需要在 NodeJS 中使用 aws-sdk 添加默认值的声音
Amazon Pinpoint SendMessages API 不 expect/allow 使用标准消息发送推送通知时要指定的 "aps" 字典。
要使用标准消息发送带声音的推送通知,请参考以下工作示例代码片段:
// Specify the parameters to pass to the API. var params = { ApplicationId: '4fd13a40xxxxxxxx', MessageRequest: { Addresses: { ["token from APNS"]: { ChannelType: 'APNS' } }, MessageConfiguration: { APNSMessage: { Title: 'TEST', Body: 'This is a sample push notification sent from Amazon Pinpoint by using Nodejs SDK', Sound: 'default', } } } };
要使用 "aps" 字典发送带声音的推送通知,则需要使用:
( i ) RawContent 属性:如果使用 Pinpoint SDK/REST API/CLI。RawContent 属性 需要 defined/specified 作为 JSON 格式的字符串,如下所示:
// Specify the parameters to pass to the API.
var params = {
ApplicationId: '4fd13a40xxxxxxxx',
MessageRequest: {
Addresses: {
"token from APNS": {
ChannelType: 'APNS'
}
},
MessageConfiguration: {
APNSMessage: {
RawContent : '{"aps":{"alert":"Hello, this is a test push notification!","sound":"default"}}' // If you define 'RawContent' here, everything ("message") else in the "MessageConfiguration" will be ignored.
}
}
}
};
( ii ) RawMessage 属性 :如果使用 Pinpoint 控制台,如下图所示:
{
APNSMessage: {
aps: {
alert: {
title: notification.title,
body: notification.message
},
sound: 'default'
}
}
}
这解释了为什么当您在 AWS Pinpoint 控制台中进行测试并选择“测试消息传递和原始消息”时,通知可以正常工作并发出声音。