Subversion Repositories Integrator Subversion

Rev

Rev 106 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
106 espaco 1
package br.com.ec.controller.managedbean;
2
 
3
import java.io.File;
4
import java.io.FileInputStream;
5
import java.io.IOException;
6
import java.io.Serializable;
7
 
8
import javax.annotation.PostConstruct;
9
import javax.inject.Inject;
10
import javax.inject.Named;
11
 
12
import org.springframework.context.annotation.Scope;
13
import org.springframework.core.io.DefaultResourceLoader;
14
 
15
import com.google.auth.oauth2.GoogleCredentials;
16
import com.google.firebase.FirebaseApp;
17
import com.google.firebase.FirebaseOptions;
18
import com.google.firebase.auth.FirebaseAuth;
19
import com.google.firebase.database.FirebaseDatabase;
20
import com.google.firebase.messaging.FirebaseMessaging;
21
import com.google.firebase.messaging.FirebaseMessagingException;
22
import com.google.firebase.messaging.Message;
23
 
24
import br.com.ec.domain.service.seguranca.ContextoSeguranca;
25
import br.com.ec.domain.shared.ConstantesSEC;
26
 
27
@Named
28
@Scope("view")
29
public class NotificacaoBean implements Serializable {
30
 
31
        private static final long serialVersionUID = 1L;
32
 
33
        private ContextoSeguranca contextoSeguranca;
34
 
35
        @Inject
36
        public NotificacaoBean(ContextoSeguranca contextoSeguranca) {
37
                this.contextoSeguranca = contextoSeguranca;
38
        }
39
 
40
        @PostConstruct
41
        public void preCarregamento() {
42
//              inicializarAppNotificacao();
43
        }
44
 
45
        public FirebaseApp inicializarAppNotificacao() {
46
                FileInputStream serviceAccount;
47
                FirebaseOptions options;
48
 
49
                try {
50
                        String caminhoChaves = new DefaultResourceLoader().getResource(ConstantesSEC.NotaFiscal.Certificado.CAMINHO_SCHEMAS).getFile().getAbsolutePath() + System.getProperty("file.separator");
51
                        serviceAccount = new FileInputStream(caminhoChaves);
52
                        options = new FirebaseOptions.Builder()
53
                                    .setCredentials(GoogleCredentials.fromStream(serviceAccount))
54
                                    .setDatabaseUrl("https://project-963735578116.firebaseio.com/")
55
                                    .build();
56
//                                  .setDatabaseUrl("https://<DATABASE_NAME>.firebaseio.com/")
57
 
58
                        return FirebaseApp.initializeApp(options);
59
                } catch (Exception e) {
60
                        e.printStackTrace();
61
                }
62
                return null;
63
        }
64
 
65
        public void enviarMensagem() {
66
                // Initialize the default app
67
                FirebaseApp defaultApp = inicializarAppNotificacao();
68
 
69
                System.out.println(defaultApp.getName());  // "[DEFAULT]"
70
 
71
                // Retrieve services by passing the defaultApp variable...
72
                FirebaseAuth defaultAuth = FirebaseAuth.getInstance(defaultApp);
73
                FirebaseDatabase defaultDatabase = FirebaseDatabase.getInstance(defaultApp);
74
 
75
                // ... or use the equivalent shorthand notation
76
                defaultAuth = FirebaseAuth.getInstance();
77
                defaultDatabase = FirebaseDatabase.getInstance();
78
 
79
 
80
        }
81
 
82
        public void send(String idPush, String msg)  {
83
        try {
84
                String caminhoChaves = new DefaultResourceLoader().getResource(ConstantesSEC.NotaFiscal.Notificacao.CAMINHO_CHAVES).getFile().getAbsolutePath() + System.getProperty("file.separator");
85
            GoogleCredentials fromStream = GoogleCredentials.fromStream(new FileInputStream(new File(caminhoChaves)));
86
            FirebaseOptions firebaseOptions = new FirebaseOptions.Builder().setConnectTimeout(10000).setCredentials(fromStream).build();
87
            FirebaseApp firebaseApp = FirebaseApp.initializeApp(firebaseOptions);
88
            FirebaseMessaging firebaseMessaging = FirebaseMessaging.getInstance(firebaseApp);
89
            Message message = Message.builder().putData("msg", msg).setToken(idPush).build();
90
            String response = firebaseMessaging.send(message);
91
            System.out.println(response);
92
        } catch (FirebaseMessagingException e) {
93
            e.printStackTrace();
94
        } catch (IOException e) {
95
            e.printStackTrace();
96
        }
97
 
98
    }
99
 
100
        /*******************/
101
 
102
        public FirebaseApp inicializarServicoMensagem() {
103
                try {
104
                        String caminhoChaves = new DefaultResourceLoader().getResource(ConstantesSEC.NotaFiscal.Notificacao.CAMINHO_CHAVES).getFile().getAbsolutePath() + System.getProperty("file.separator");
105
                        FileInputStream serviceAccount = new FileInputStream(caminhoChaves);
106
 
107
                        FirebaseOptions options = new FirebaseOptions.Builder()
108
                                .setCredentials(GoogleCredentials.fromStream(serviceAccount))
109
                                .setDatabaseUrl("https://espacocaseenvio.firebaseio.com")
110
                                .build();
111
 
112
                        return FirebaseApp.initializeApp(options);
113
                } catch (Exception e) {
114
                        e.printStackTrace();
115
                }
116
                return null;
117
        }
118
 
119
        public void enviarMensagem(String idPush) {
120
                FirebaseApp firebaseApp = inicializarAppNotificacao();
121
                FirebaseMessaging firebaseMessaging = FirebaseMessaging.getInstance(firebaseApp);
122
 
123
        Message message = Message.builder().putData("msg", "teste BRUNO").setToken(idPush).build();
124
        String response;
125
                try {
126
                        response = firebaseMessaging.send(message);
127
                        System.out.println(response);
128
                } catch (FirebaseMessagingException e) {
129
                        e.printStackTrace();
130
                }
131
        }
132
 
133
}