@retr0

Не работает Firebase cloud messaging,как исправить?

Есть приложение,интегрировал в него FCM,протестировал отправку уведомлений через консоль Firebase - работает отлично.Дальше написал простую программу для отправки уведомлений вне консоли,ошибок в логах нет,но уведомления не отправляются.

Класс унаследованный от Sender для отправки уведомления на endpoint:
import com.google.android.gcm.server.Sender;

import java.io.IOException;
import java.net.HttpURLConnection;
import java.net.URL;

public class FCMSender extends Sender {

    public FCMSender(String key) {
        super(key);
    }

    @Override
    protected HttpURLConnection getConnection(String url) throws IOException {
        String fcmUrl = "https://fcm.googleapis.com/fcm/send";
        return (HttpURLConnection) new URL(fcmUrl).openConnection();
    }
}

Основной класс:
import com.google.android.gcm.server.Message;
import com.google.android.gcm.server.Result;
import com.google.android.gcm.server.Sender;

public class MainServer {

    public static void main(String[] args) {

        //Ключ сервера из Настройки проекта/Cloud messaging
        final String ServerKey = "AAAANe_-GCc:APA91bHQftyF95qsZYu0ELS83I390w-TxWsARDJ-nEHb5bKQ1JdMF0s045bUTefo_D22ATpRy5vlJ1Lla7o0vcTDs6fLY_BhyutQzi9B_zOUBLtCekDrf8pt1kb3z1ur8fwfDHWm1aPb";

        Thread t = new Thread() {
            public void run() {

                try {
                    Sender sender = new FCMSender(ServerKey);
                    Message message = new Message.Builder()
                            .collapseKey("message")
                            .timeToLive(3)
                            .delayWhileIdle(true)
                            .addData("message", "Тест")
                            .build();
                    //Токен пользователя
                    Result result = sender.send(message, "fEJ4nH0yHyQ:APA91bEyNXcTauN6WHl3pZmELHSBhtqlsIerdR30WvkZu3dhJFHoZyQRJjP9bh6UIjR9RQZlezb_3qKKqv3hoP96UMK5tPTUH9PcbPxGJG_NGd0-o-Jk7aqzMRGl25x8fpt0hqie1fOI", 1);
                    System.out.println("Result" + result.toString());
                } catch (Exception e){
                    System.out.println("Sending error.");
                }
            }
        };

        t.start();
        try {
            t.join();
        } catch (Exception e){
            System.out.println("Join error.");
        }
    }
}

В логах пишет следующее:
Result[ messageId=0:1496767045494310%810639f938eb0007 ]
  • Вопрос задан
  • 732 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы