向特定端点发送推送通知

Posted

技术标签:

【中文标题】向特定端点发送推送通知【英文标题】:Send push notification to a specific endpoint 【发布时间】:2015-04-13 13:44:53 【问题描述】:

我想使用亚马逊 SNS 将推送通知从 android 应用程序直接发送到 android 端点。如果我只有端点的 GCM 令牌,我想知道该怎么做(如果不可能,我必须这样做吗?)。如果有必要,我还必须知道如何从端点应用程序在亚马逊 SNS 上注册端点。我正在使用安卓工作室。我是应用程序开发的新手,需要这个尽快!

谢谢 安德烈

【问题讨论】:

享受docs。有示例、示例以及许多您正在寻找的东西。 【参考方案1】:

您可以使用以下方法从android设备注册亚马逊sns。在您注册之前,您必须获得 1.access_key_id 2.secret_access_key 3.application Arn 4.来自gcm的API密钥

然后使用以下代码:

 private String createEndpoint(String token) 

            String endpointArn = null;
            try 
                System.out.println("Creating endpoint with token " + token);
                CreatePlatformEndpointRequest cpeReq = new CreatePlatformEndpointRequest().withPlatformApplicationArn(applicationArn).withToken(token);
                CreatePlatformEndpointResult cpeRes = client.createPlatformEndpoint(cpeReq);
                endpointArn = cpeRes.getEndpointArn();
             catch (InvalidParameterException ipe) 
                String message = ipe.getErrorMessage();
                System.out.println("Exception message: " + message);
                Pattern p = Pattern.compile(".*Endpoint (arn:aws:sns[^ ]+) already exists " + "with the same Token.*");
                Matcher m = p.matcher(message);
                if (m.matches()) 
                    // the endpoint already exists for this token, but with
                    // additional custom data that
                    // CreateEndpoint doesn't want to overwrite. Just use the
                    // existing endpoint.
                    endpointArn = m.group(1);
                 else 
                    // rethrow exception, the input is actually bad
                    throw ipe;
                
            
            storeEndpointArn(endpointArn);
            return endpointArn;
        

【讨论】:

以上是关于向特定端点发送推送通知的主要内容,如果未能解决你的问题,请参考以下文章

如果禁用 SNS 端点,为啥 SNS 无法发送推送通知?

如何在通知中心向特定用户发送推送通知?

GMail 停止发送推送通知

在 PHP 中向特定用户推送通知

解析从云代码向特定用户发送推送通知

如何使用解析向特定组成员发送推送通知?