使用AWS Pinpoint通过Lambda函数发送通知 [英] Send a notification by Lambda function with AWS Pinpoint

查看:0
本文介绍了使用AWS Pinpoint通过Lambda函数发送通知的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个iOS应用程序,其后端构建方为MobileHubAPI GatewayLambdaDynamoDB。 我注意到MobileHubSNS功能已被Pinpoint取代,我想使用此新服务创建一个通知系统。

当用户通过API Gateway创建新帖子时,会触发lambda函数,我想我可以通过Pinpoint向订阅者发送通知。 但我在Pinpoint的官网上找不到任何示例或参考文档。

您是否有针对此方案的任何资源或任何想法?非常感谢!

推荐答案

取决于您所说的通知的含义,我假定您希望向特定用户发送推送通知(精确定位终结点)。

Pinpoint将与用户关联的每个设备存储为端点,通常由AWS客户端分析库(如Amplify Analytics)创建。

客户端

使用Amplify分析库,我调用updateEndpoint以便可以指定可用于Lambda的userId,以及设备令牌和RemoveoptOut以便用户可以接收推送通知:

  1. Address-用户接受推流通知权限生成的令牌(iOS)
  2. optOut-NONE以便他们可以接收推送通知
  3. 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权限。

来源

这篇关于使用AWS Pinpoint通过Lambda函数发送通知的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆