Сообщение FCM из приложения Android в браузер - PullRequest
0 голосов
/ 23 мая 2018

Firebase Hosting , выполняющий сборку моего сайта с Angular и Firebase Messaging .

Если я отправил FCM в браузер через CURL, тоработает, и сообщение будет показано (см. пример curl внизу).

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

Пока все хорошо, но теперь я хочу отправить сообщение FCM в браузер из приложения для Android .

Но я не нашел хорошего способасделать это на Android.
Android API FirebaseMessaging и RemoteMessage принимают только global"sender_id" и без "на" адрес, как в CURL или HTTP-запросе POST.

Это работает, если я использую HTTP-запрос POST, но в этом случае мне нужен ключ API сервера внутри моего приложения для Android (не очень хорошо !!) (см. Пример HTTP внизу).

Так есть ли способ отправить через приложение Android сообщение FCM напрямуюна конкретное устройство (в моем случае это браузер)?


вызов curl, который я использую для проверки работы сайта браузера:

curl -H "Content-type: application/json" -H "Authorization:key=<API-KEY>"  -X POST -d "{\"data\": { \"score\": \"5x1\",\"time\": \"15:10\"},\"to\" : \"<token from the browser>\"}" https://fcm.googleapis.com/fcm/send

HTTP-вызов внутри приложения Android для тестирования:

try {
                    URL url = new URL("https://fcm.googleapis.com/fcm/send");
                    HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
                    urlConnection.setRequestMethod("POST");
                    urlConnection.setDoOutput(true);
                    urlConnection.setRequestProperty("Content-Type", "application/json");
                    urlConnection.setRequestProperty("Authorization", "key=<API-KEY>");
                    String postJsonData = "{\"to\": \"<token from the browser>\", \"data\": {\"data\": \"" + data.getNote() + "\"}}";
                    urlConnection.setDoOutput(true);

                    DataOutputStream wr = new DataOutputStream(urlConnection.getOutputStream());
                    wr.writeBytes(postJsonData);
                    wr.flush();
                    wr.close();

                    int responseCode = urlConnection.getResponseCode();
                    log.i(TAG, "POST Response Code :: " + responseCode);

                    if (responseCode == HttpURLConnection.HTTP_OK){
                        log.i(TAG, "succeeded");
                    }
                } catch(MalformedURLException e) {
                    log.e(TAG, "MalformedURLException" , e);
                } catch (IOException e) {
                    log.e(TAG, "IOException" , e);
                }

1 Ответ

0 голосов
/ 23 мая 2018

разверните свой код в функциях Firebase с помощью ключей сервера, нажмите его в своем приложении для Android.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...