Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Java Новый топик    Ответить
 Отправка web пуша  [new]
Павел Гужанов
Member

Откуда: Наро-Фоминск
Сообщений: 507
Здравствуйте.
Подскажите пожалуйста, те, кто в теме.
Приложение должно отправлять веб пуш. Отправка пуша на мобилу проходит без проблем.
На сайте гугла нашел вот такой пример:
String registrationToken = "YOUR_REGISTRATION_TOKEN";

// See documentation on defining a message payload.
Message message = Message.builder()
    .putData("score", "850")
    .putData("time", "2:45")
    .setToken(registrationToken)
    .build();

// Send a message to the device corresponding to the provided
// registration token.
String response = FirebaseMessaging.getInstance().send(message);
// Response is a message ID string.
System.out.println("Successfully sent message: " + response);


Делаю аналогично, только указываю свой токен.
Добавил в pom.xml зависимости:
 <dependency>
            <groupId>com.google.firebase</groupId>
            <artifactId>firebase-admin</artifactId>
            <version>6.8.1</version>
        </dependency>
        <dependency>
            <groupId>com.google.gms</groupId>
            <artifactId>google-services</artifactId>
            <version>3.1.1</version>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>com.google.api-client</groupId>
            <artifactId>google-api-client-gson</artifactId>
        </dependency>
        <dependency>
            <groupId>com.google.api</groupId>
            <artifactId>api-common</artifactId>
        </dependency>
        <dependency>
            <groupId>com.google.auth</groupId>
            <artifactId>google-auth-library-oauth2-http</artifactId>
        </dependency>
        <dependency>
            <groupId>com.google.cloud</groupId>
            <artifactId>google-cloud-storage</artifactId>
        </dependency>
        <dependency>
            <groupId>com.google.cloud</groupId>
            <artifactId>google-cloud-firestore</artifactId>
        </dependency>

Пытаюсь отправить сообщение, на сроке
String response = FirebaseMessaging.getInstance().send(message);

получаю ошибку:
java.lang.IllegalStateException: FirebaseApp with name [DEFAULT] doesn't exist.
Подскажите, что мне нужно сделать, чтобы отправка заработала?
7 июн 21, 09:35    [22332095]     Ответить | Цитировать Сообщить модератору
 Re: Отправка web пуша  [new]
chpasha
Member

Откуда:
Сообщений: 10838
Вот это все проделали? https://firebase.google.com/docs/admin/setup/
Проще всего воспользоваться rest api для пушей и любым http-клиентом (либо либой firebase4j но я честно говоря не вижу особого смысла ради одного POST запроса)
7 июн 21, 10:15    [22332108]     Ответить | Цитировать Сообщить модератору
 Re: Отправка web пуша  [new]
andreykaT
Member

Откуда: =||==
Сообщений: 3402
они вроде плачут что надо юзать их сдк а не голый апи. а их сдк мавеном тащутся через зад.
7 июн 21, 11:14    [22332145]     Ответить | Цитировать Сообщить модератору
 Re: Отправка web пуша  [new]
Павел Гужанов
Member

Откуда: Наро-Фоминск
Сообщений: 507
Настроил проект firebase, получил json с настройками и урл базы данных firebase своего проекта.
Инициализировал FirebaseApp:
FileInputStream serviceAccount = new FileInputStream(this.getClass().getClassLoader().getResource(<pathFirebaseConfig>).getPath());
        FirebaseOptions options = new FirebaseOptions.Builder()
                .setCredentials(GoogleCredentials.fromStream(serviceAccount))
                .setDatabaseUrl(<databaseUrl>)
                .build();
        FirebaseApp.initializeApp(options);


В pom.xml убрал лишние завистмости, оставил только
<dependency>
            <groupId>com.google.firebase</groupId>
            <artifactId>firebase-admin</artifactId>
            <version>6.8.1</version>
        </dependency>
        <dependency>
            <groupId>com.google.gms</groupId>
            <artifactId>google-services</artifactId>
            <version>3.1.1</version>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>com.google.auth</groupId>
            <artifactId>google-auth-library-oauth2-http</artifactId>
            <version>0.26.0</version>
        </dependency> 


Все заработало, спасибо
7 июн 21, 12:21    [22332198]     Ответить | Цитировать Сообщить модератору
 Re: Отправка web пуша  [new]
Павел Гужанов
Member

Откуда: Наро-Фоминск
Сообщений: 507
Зависимость
        <dependency>
            <groupId>com.google.auth</groupId>
            <artifactId>google-auth-library-oauth2-http</artifactId>
            <version>0.26.0</version>
        </dependency>

тоже оказалась лишней
7 июн 21, 16:08    [22332394]     Ответить | Цитировать Сообщить модератору
 Re: Отправка web пуша  [new]
chpasha
Member

Откуда:
Сообщений: 10838
если нужен только пуш, то там все лишнее - простой POST сделает тоже самое. с пушки по воробьям в данном случае
7 июн 21, 17:49    [22332470]     Ответить | Цитировать Сообщить модератору
 Re: Отправка web пуша  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 8254
chpasha,

Пуш же отправка сообщения клиенту от сервера. То есть где post сделать нельзя.
Или я нет понял замысел автора?

Сообщение было отредактировано: 7 июн 21, 18:10
7 июн 21, 18:18    [22332481]     Ответить | Цитировать Сообщить модератору
 Re: Отправка web пуша  [new]
chpasha
Member

Откуда:
Сообщений: 10838
PetroNotC Sharp
То есть где post сделать нельзя.

почему сервер не может сделать пост? любым http-клиентом
7 июн 21, 18:30    [22332486]     Ответить | Цитировать Сообщить модератору
 Re: Отправка web пуша  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 8254
chpasha,

Кому сделать. Клиенту с сервером? Кто прочитает post?
7 июн 21, 19:31    [22332516]     Ответить | Цитировать Сообщить модератору
 Re: Отправка web пуша  [new]
chpasha
Member

Откуда:
Сообщений: 10838
PetroNotC Sharp
Кто прочитает post?

POST отправляется на сервер гугла, в следствие чего клиент получит от сервера гугла пуш-сообщение. SDK сделает ровно тоже самое
POST https://fcm.googleapis.com/v1/projects/myproject-b5ae1/messages:send HTTP/1.1

Content-Type: application/json
Authorization: Bearer ya29.ElqKBGN2Ri_Uz...HnS_uNreA

{
   "message":{
      "token":"bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...",
      "notification":{
        "body":"This is an FCM notification message!",
        "title":"FCM Message"
      }
   }
}

здесь token - уникальный токен конкретного клиента
7 июн 21, 22:11    [22332571]     Ответить | Цитировать Сообщить модератору
 Re: Отправка web пуша  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 8254
chpasha,
Ааа ну дак на гугл. Тогда конечно согласен. Он это умеет.
8 июн 21, 08:56    [22332658]     Ответить | Цитировать Сообщить модератору
Все форумы / Java Ответить