使用AWS Pinpoint通过Lambda函数发送通知 [英] Send a notification by Lambda function with AWS Pinpoint
本文介绍了使用AWS Pinpoint通过Lambda函数发送通知的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个iOS应用程序,其后端构建方为MobileHub
、API Gateway
、Lambda
和DynamoDB
。
我注意到MobileHub
的SNS
功能已被Pinpoint
取代,我想使用此新服务创建一个通知系统。
当用户通过API Gateway
创建新帖子时,会触发lambda函数,我想我可以通过Pinpoint
向订阅者发送通知。
但我在Pinpoint
的官网上找不到任何示例或参考文档。
您是否有针对此方案的任何资源或任何想法?非常感谢!
推荐答案
取决于您所说的通知的含义,我假定您希望向特定用户发送推送通知(精确定位终结点)。
Pinpoint将与用户关联的每个设备存储为端点,通常由AWS客户端分析库(如Amplify Analytics)创建。
客户端
使用Amplify分析库,我调用updateEndpoint
以便可以指定可用于Lambda的userId
,以及设备令牌和RemoveoptOut
以便用户可以接收推送通知:
Address
-用户接受推流通知权限生成的令牌(iOS)optOut
-NONE
以便他们可以接收推送通知userId
-用户的唯一ID(Cognito的SUB)
lambda(node.js)
现在您可以使用userId
和Pinpoint SDK发送推送通知。
示例:
const sendMessagesParams = {
ApplicationId: process.env.PINPOINT_APP_ID,
SendUsersMessageRequest: {
Users: {
[receiverUserId]: {}
},
MessageConfiguration: {
APNSMessage: {
Action: 'OPEN_APP',
Title: 'Message received',
SilentPush: false,
Body: `You have a new message`
},
GCMMessage: {
Action: 'OPEN_APP',
Title: 'Message received',
SilentPush: false,
Body: `You have a new message`
}
}
}
};
console.log('sendMessagesParams', JSON.stringify(sendMessagesParams));
pinpoint.sendUsersMessages(sendMessagesParams, (sendMessagesErr, sendMessagesData) => console.log('push sent')
针对您的特定场景,我设置了DynamoDB流,并在表中的记录发生变化时触发Lambda。创建lambda后,您可能需要手动添加IAM权限。
来源
- Full list of pinpoint methods you can use in lambda(Node.js)
- Update endpoint using Amplify Analytics(js)
- Dynamodb streams-触发lambda
这篇关于使用AWS Pinpoint通过Lambda函数发送通知的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文