如何通过AWS Pinpoint单次调用发送多条个性化推送通知?
AWS Pinpoint 批量个性化推送指南
1. 接口选择:sendUsersMessages vs sendMessages
- sendUsersMessages:专门用于批量给多个用户发送个性化消息,支持为每个用户配置自定义属性做内容替换,是你需求场景的正确选择。
- sendMessages:仅针对单个终端用户/设备发送单条消息,不支持批量个性化内容替换,不适合你的需求。
2. 个性化消息实现逻辑
在全局消息模板中使用**{{属性名}}**作为占位符,然后在Users对象里为每个用户配置对应的属性值,Pinpoint会自动将占位符替换为该用户的专属内容。
3. 修改后的代码示例
// 全局消息模板,加入{{username}}和{{customText}}作为个性化占位符 const gcmRawContent = JSON.stringify({ data: { title: '专属通知', message: '你好{{username}},{{customText}}', experienceId, channelId, body: '你的专属内容已更新', }, }); const messageConfiguration = { MessageConfiguration: { GCMMessage: { RawContent: gcmRawContent, }, }, }; const sendMessagesParams = { ApplicationId, SendUsersMessageRequest: { // 为每个用户配置专属属性,对应模板中的占位符 Users: { 'userId1': { Attributes: { username: '张三', customText: '你的订单已发货,预计明天送达' } }, 'userId2': { Attributes: { username: '李四', customText: '你的专属优惠券即将过期,请尽快使用' } } }, ...messageConfiguration, }, }; const pinpoint = new AWS.Pinpoint(); await pinpoint.sendUsersMessages(sendMessagesParams).promise();
关键注意点
- 占位符名称必须和
Attributes中的键完全匹配,区分大小写。 - 也可以直接使用Pinpoint用户档案中已有的属性(如用户姓名、邮箱等),格式同样为
{{属性名}}。 - 如果某个用户未配置对应属性,Pinpoint会保留占位符原样,建议为所有用户补全必要属性。
内容的提问来源于stack exchange,提问作者Hyrial
相关产品推荐
相关产品推荐

