【问题标题】:AWS SNS Publish to specific User via Cognito Identity IDAWS SNS 通过 Cognito 身份 ID 发布到特定用户
【发布时间】:2016-09-23 04:57:33
【问题描述】:

我在这里尝试做的是在特定用户是新添加的 DynamoDB 项目的一部分时通过 SNS 和 APNS 发送通知。我想将其发送给用户 Cognito 身份 ID,而不是设备令牌。

因此,添加项目时应该触发 Lambda,然后通过 Cognito 身份 ID 列表,这也是项目的一部分。

然后 Lambda 应该将推送通知发布到每个 Cognito 身份 ID。

所有设备都在 sns 中注册为端点。我还将 Cognito 身份 ID 保留在端点的“用户数据”行中。

但我没有找到将通知直接发送到 Cognito 身份 ID 的方法。我是否必须为每个用户添加一个主题并将通知发送到该主题?或者我是否必须存储另一个 DynamoDB 表才能将 Cognito 身份 ID 映射到设备令牌?如果有人知道一种更简单且不太昂贵的方法,那就太好了!

谢谢!

【问题讨论】:

    标签: amazon-web-services amazon-dynamodb amazon-sns aws-lambda


    【解决方案1】:

    如果您通过 SNS 向 APNS 或 GCM 发送推送通知,那么您首先需要为每个注册推送通知的设备令牌创建一个 SNS 平台端点。拥有 SNS 端点后,您需要将该端点与用户表或另一个映射表中的 Cognito 身份 ID 进行映射。

    将新项目添加到 DynamoDB 时,事件处理程序 (Lambda) 需要将传入的 Cognito 身份 ID 映射到用户表中的 SNS 平台端点,然后它可以直接发布到该端点。

    您无需创建 SNS 主题即可将 Push 发送到各个端点。

    【讨论】:

    • 谢谢!这正是我需要知道的!我有点希望可以通过存储在特定端点的“用户数据”列中的值来访问端点。知道我只是将端点 arns 存储在我的用户表中每个用户的列表中。
    • 我的移动应用也需要这个功能。我将 Lambda 函数设置为在新文件上传到 S3 时触发。我以特定方式构造了文件名,使其包含“from”和“To”信息,如“fromuser_touser.txt”。但是我找不到将属性存储作为用户配置文件的一部分返回的 Cognito API。 (我正在考虑将端点存储为属性)。不知道有没有这样的API?
    猜你喜欢
    • 2017-12-03
    • 2017-01-02
    • 2019-01-21
    • 2018-03-18
    • 2021-03-26
    • 2016-01-17
    • 2017-02-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多