当前位置: 首页 > 知识库问答 >
问题:

AWS移动推送通知示例

戴嘉珍
2023-03-14

我正在努力理解AWS移动推送通知是如何工作的。具体来说,我正在构建一个web服务,它将能够向运行在用户设备上的移动应用程序发送通知。在阅读了他们所有的文档后,听起来高层次的流程是:

    < li >配置 < ul > < li >我需要进入各自的推送通知服务(Android版的GCM和iOS版的APNS ),并对它们进行配置,以获取我配置后端服务在运行时用于连接它们的凭据。 < li >我需要登录AWS SNS控制台并生成一个平台应用程序ARN(< code > PlatformApplicationARN ),我还需要配置我的后端来使用它
    < li >当新用户首次注册时,或者现有用户在新设备上登录时,我让应用程序向我的服务发送他们的设备信息。该设备信息的一个关键部分是它们的设备令牌(在AWS文档中也称为“注册ID”)。该令牌由他们的操作系统生成,并在各自的推送通知服务中唯一标识他们的设备(对我来说还是GCM或APNS) < li >当我的服务收到这个新的设备信息时,我保存它,并且我还使用设备令牌来访问AWS SNS API(以及我配置的< code > PlatformApplicationARN )来为该特定设备生成唯一的< code>EndpointARN < li >现在,每当我的后端决定需要向该用户发送通知时,我就可以查找与该用户关联的所有设备(之前存储在我的数据库中),并获取每个设备的< code>EndpointARN。然后只需点击AWS SNS API,将我的通知消息发送到那个< code>EndpointARN,听起来AWS SNS会处理所有其他事情(并将实际消息发送到设备)

因此,在我继续下去之前,我只是想找人来帮助检查我的理解是否正确,如果我误解了什么或错过了配置/流程的任何重要部分,请提供任何课程更正!假设我或多或少走上正轨...

我仍然看不出,一旦我向一个< code>EndpointARN发送通知消息,SNS将如何能够连接到GCM和APNS。他们是否维护自己与这些服务的集成/连接?或者,我是否以某种方式将自己的GCM/APNS凭证注入AWS SNS API调用中?

此外,我知道推送通知可以很好地配置,允许您做以下事情:

  • 确定设备收到通知时应播放的声音。
  • 确定接收到通知时LED闪烁的颜色(在我的Android手机上,不同的应用程序会导致绿色、蓝色甚至紫色LED闪烁!)
  • 确定通知是否由Android/iOS操作系统本身接收(在这种情况下,如果我离开手机几分钟后回到手机,我可以按下任何按钮,查看我收到的任何新通知的高级列表摘要);或者,通知是否纯粹是“应用内”通知,在这种情况下,我只会在实际打开我的应用程序时才看到收到通知

我想知道这些配置是在哪里进行的?有什么想法吗?

共有1个答案

郭凯
2023-03-14

我可以确认高层流程是:

  • 登录AWS SNS并创建2个不同的平台应用程序,一个用于Android(FCM-Firebase Cloud Messaging),另一个用于iOS(APNS-Apple推送通知服务)
  • 对于每个平台应用程序,您将获得一个PlatformApplication ationArn,并且您将被要求提供凭据,以便SNS可以连接到您各自的FCM/APNS帐户
    • 对于FCM,您只需要您的服务器API密钥(可从Firebase Cloud Manager获得)
    • 对于APNS,您需要通过Mac上的密钥链访问工具创建证书,这是一个非常劳动密集型的过程,这并不有趣…

 类似资料:
  • 我们有一个要求有一个持久的移动推送通知;我们发现了带有AWS认知的AWS SNS。我们最关心的是,我们发现AWS SNS不像OneSignal那样支持图像或blob数据类型。 AWS SNS有什么方法可以在推送移动通知中支持图像(图像也会在notif预览中显示)

  • 在创建平台应用程序时,我尝试创建应用程序和消息推送平台选择GCM,然后添加API密钥,我得到了以下结果。 无效参数:属性原因:平台凭据无效(服务:Amazon SNS;状态代码:400;错误代码:InvalidParameter;请求ID:44a04d15-c58b-5bf8-859e-0311947aac6c) 这意味着什么?我如何修复它?

  • 我为沙盒iOS设置了推送通知,它们曾经工作过,但由于某种原因目前不工作。这是来自云观察日志的错误AWS SNS: 这是我的发送代码(AWS Lambda调用此代码): Lambda方法的返回数据: 我已经将问题缩小到不与我的lambda方法关联,因为我试图发布到直接从SNS控制台创建的endpoint。我还想知道为什么这个旧的实现在过去,一个月或两个月前,仍然有效,而现在不再有效。我认为这可能与过

  • 我正在尝试为IBM提供的混合应用程序实现推送通知示例,但我得到下面的注册错误。在应用程序描述符中正确设置了GCM API密钥和项目ID。XML。 我在Nexus5(Android 4.2.2)中部署了使用分发证书签名的APK,但它还不能工作。 有人能帮我吗?我正在使用Worklight Studio 6.2 谢谢 重置退避为com.推送通知GCM注册商(29967):注册app com.发送者的推

  • 我使用aws sns向设备发送推送通知(移动设备大多是android)。我可以向单个设备发送通知,但我想发布一条必须发送给所有活动设备的通用消息。我已经创建了平台应用程序,并使用所有设备注册id创建了endpoint,还创建了主题并订阅了主题,但当我发布消息时,发布成功,我获得了消息id,但没有收到通知。我已经实现了AmazonSNSClient类中的大多数方法。如果有人能指导我,这将是非常有益的

  • 现在,当有人向SNS发布消息时,我试图向手机发送推送通知。我对我必须使用哪些服务感到困惑。我是否必须使用Firebase Cloud Messaging/GCM等第三方服务来发送移动推送通知?或者我可以直接从SNS发送到我的手机上。 在AWS文档中,这对我来说有点矛盾。 https://docs.aws.amazon.com/sns/latest/dg/sns-mobile-application