Подтвердить что ты не робот

Пример сервера Java GCM

Есть ли у кого-нибудь ссылка на пример GCM java 3rd Party Server? Я не могу понять, как его реализовать. В http://developer.android.com/google/gcm/server.html я не смог найти полный пример.

4b9b3361

Ответ 1

Самый простой способ - использовать gcm-server.jar (который вы можете получить из здесь).

Затем код, который вам нужно отправить сообщение GCM, будет выглядеть так:

Sender sender = new Sender(apiKey);
Message message = new Message.Builder()
    .addData("message", "this is the message")
    .addData("other-parameter", "some value")
    .build();
Result result = sender.send(message, registrationId, numOfRetries);

Ответ 2

Я хотел бы поделиться более лучшим подходом, который подтверждает успешное сообщение. Мы можем сделать это с помощью RestTemplate и HTTPPost.

Я покажу, как мы можем это сделать, используя gcm.jar

public class GCMJarGCM {
    public static final String GCM_API_KEY = "Get this API key from Google Developer Console";
    public static final String MESSAGE_VALUE = "Hello, Sending Notifications using GCM";    
    public static final String MESSAGE_KEY = "message";
    public static final String REG_ID = "This you'll get once you register on GCM";

    public static void main(String[] args) throws IOException {
        Sender sender = new Sender(GCM_API_KEY);

        ArrayList<String> devicesList = new ArrayList<String>();
        devicesList.add(REG_ID);

        Message message = new Message.Builder().timeToLive(30)
                .delayWhileIdle(true).addData(MESSAGE_KEY, MESSAGE_VALUE).build();

        MulticastResult result = sender.send(message, devicesList, 1);
        sender.send(message, devicesList, 1);
        System.out.println(result.toString());
    }
}

Результат, который вы увидите, как показано ниже:

MulticastResult(multicast_id=4951949299732552396,total=1,success=1,failure=0,canonical_ids=0,results: [[ messageId=0:1445408305351488%2a748ce7f9fd7ecd ]]

Если вы хотите использовать HTTPPost или RestTemplate, вам необходимо использовать EndPoint: https://android.googleapis.com/gcm/send