使用 SNS 向 Android 发送推送

Sending push to Android using SNS

我真的很困惑如何使用 Amazon SNS 获得从我的 .NET 后端向我的 android 应用程序发送推送的整个链。

我在我的后端使用 JustSaying 将我的消息发送到 SNS,当我用电子邮件订阅者测试它时它正在工作。这是我用来发送推送的代码:

var publisher = CreateMeABus.InRegion(RegionEndpoint.EUCentral1.SystemName)
                .WithSnsMessagePublisher<Push>();


publisher.Publish(new Push("Hello"));

然后推送 class 看起来像这样:

public class Push : Message
    {

        public Push(string body)
        {
            Body = body;
        }

        public string Body { get; set; }

    }

现在我的问题是,如何将此推送发送到我的特定设备?

我在 https://developers.google.com 上为 google 云消息创建了一个应用程序,并且有一个 applicationkey 和 senderid。

我还在 http://console.developers.google.com 上设置了 API project/app 并启用了 API 用于云消息传递。

在 AWS SNS 控制台中,我还创建了一个应用程序并提供了上面提到的为 Google Android 平台生成 ARN 的应用程序密钥。

在我的 android 应用程序中,我 运行 此代码:

try{

GoogleCloudMessaging gcm = GoogleCloudMessaging.getInstance(this.getApplicationContext());
     String regId = gcm.register("my-sender-id ");

} catch(IOException e){

}

我在这里摸索着,找不到任何关于如何设置它的好教程。 AWS 文档似乎只涵盖了一小部分,而且似乎已经过时了。

非常感谢为我指明正确方向的任何帮助。

谢谢!

参见 SNS 开发者指南 http://docs.aws.amazon.com/sns/latest/dg/mobile-push-gcm.html。简而言之:

  • 按照您的代码获取 GCM 设备令牌(或 regId)
  • 通过使用您的设备令牌调用 CreatePlatformEndpointRequest,将您的设备注册到 SNS。您将获得一个平台终端节点 ARN,它是该设备在 SNS 中的标识符。
  • 向设备发送通知。使用 Publish 将通知发布到平台端点 ARN

或者,您可以为您的设备订阅特定的 SNS 主题。然后您就可以向该主题发布通知,SNS 会将其广播给所有订阅者。