用于java的GCM服务器端实现

时间:2013-07-16 16:18:27

标签: google-cloud-messaging

我需要为gcm的服务器端实现一个独立的应用程序,以将通知推送到设备。是否有任何参考,我可以获得除了入门页面上的那个。人们说一些关于xmpp。我们是否需要使用这个或者我们可以直接使用gcm服务器端方法.Help.Or还有其他任何简单的方法来实现它。我希望我能正确地提出我的问题。

3 个答案:

答案 0 :(得分:3)

这是针对java的GCM服务器端实现的很好的教程。 网址:java gcm server side implementation

示例代码:java gcm服务器端实现`{

    new Thread(){

        public void run(){

            try {
                //Please add here your project API key: "Key for browser apps (with referers)".
                //If you added "API key Key for server apps (with IP locking)" or "Key for Android apps (with certificates)" here
                //then you may get error responses.
                Sender sender = new  Sender("AIzaSyB7Ej255tpTaemk_-Ljmn4GcklldT14Hp4");

                // use this to send message with payload data
                Message message = new Message.Builder()
                .collapseKey("message")
                .timeToLive(3)
                .delayWhileIdle(true)
                .addData("message", "Welcome to Push Notifications") //you can get this message on client side app
                .build(); 

                //Use this code to send notification message to a single device
                Result result = sender.send(message,
                        "APA91bEbKqwTbvvRuc24vAYljcrhslOw-jXBqozgH8C2OB3H8R7U00NbIf1xp151ptweX9VkZXyHMik022cNrEETm7eM0Z2JnFksWEw1niJ2sQfU3BjQGiGMq8KsaQ7E0jpz8YKJNbzkTYotLfmertE3K7RsJ1_hAA",
                        1);
                System.out.println("Message Result: "+result.toString()); //Print message result on console

                //Use this code to send notification message to multiple devices
                ArrayList<String> devicesList = new ArrayList<String>();
                //add your devices RegisterationID, one for each device               
                devicesList.add("APA91bEbKqwTbvvRuc24vAYljcrhslOw-jXBqozgH8C2OB3H8R7U00NbIf1xp151ptweX9VkZXyHMik022cNrEETm7eM0Z2JnFksWEw1niJ2sQfU3BjQGiGMq8KsaQ7E0jpz8YKJNbzkTYotLfmertE3K7RsJ1_hAA");   
                devicesList.add("APA91bEVcqKmPnESzgnGpEstHHymcpOwv52THv6u6u2Rl-PaMI4mU3Wkb9bZtuHp4NLs4snBl7aXXVkNn-IPEInGO2jEBnBI_oKEdrEoTo9BpY0i6a0QHeq8LDZd_XRzGRSv_R0rjzzZ1b6jXY60QqAI4P3PL79hMg");   

                //Use this code for multicast messages   
                MulticastResult multicastResult = sender.send(message, devicesList, 0);
                System.out.println("Message Result: "+multicastResult.toString());//Print multicast message result on console

            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }.start();   
}`

答案 1 :(得分:1)

为Java实现GCM服务器端的最简单方法是使用restful POST。 网址:“https://android.googleapis.com/gcm/send

示例代码:使用scribe框架作为消费者

public void pushToAndroidDevice(String deviceToken, String data) {  
    OAuthRequest request = new OAuthRequest(Verb.POST, "https://android.googleapis.com/gcm/send");
    request.addHeader("Authorization", "key=" + apiKey);
    request.addHeader("Content-Type", "application/json");

    request.addPayload(data);

    Response response = request.send();
}

答案 2 :(得分:0)

有两种方法可以为GCM连接实现服务器 1)XMPP
2)HTTP

不同之处在于XMPP允许您从设备到服务器(双向)获得响应,而HTTP是(单向)用于GCM,您只能向设备发送推送通知。

如果您需要Java客户端和HTTP服务器的完整实现,这里是链接 GCM Client and Server

相关问题