Página 1 de 1

GMS - Notification Push

Enviado: Dom Jun 05, 2016 12:10 am
por Gonzo
   Achei um vídeo bem interessante a respeito das notificações push online então queria ver se interessa pra mais alguém fazer com que esse tópico vá até o final, até que esse assunto seja esclarecido e a engine seja disponibilizada para o pessoal da comunidade, o vídeo é esse e parece bem facíl de se fazer então alguém que manja mais poderia começar a falar os passos que devemos seguir ?   vídeo >        :feliz2:

Re: GMS - Notification Push

Enviado: Dom Jun 05, 2016 9:48 pm
por itallo
Rapaz os passos são semelhantes tanto para iOS quanto para android.
No android você precisa habilitar no seu registro da console.google a utilização do GCM (https://developers.google.com/cloud-messaging/) que está sendo substituida pela FCM e colher a sua apikey.
Para iOS você deve criar uma key para o APN e baixar o arquivo p12.

Na empresa em que trabalho eu desenvolvi um serviço utilizando o PushSharp(https://github.com/Redth/PushSharp) para enviar notificações tanto para iOS quanto para Android, o mesmo também envia notificação para diversas outras plataformas. Caso não queira criar um serviço de envio de notificações você pode ignorar esta etapa e contratar uma terceirizada para realizar o envio destas notificações.

Quando o usuário instalar seu App, você terá acesso a KEYxAPP* do aparelho, você pega esta key e envia para o seu banco de dados para poder guardar as keys registradas.
Quando for enviar uma notificação você envia a mensagem para a key colhida.

KEY*APP = cada app tem uma key única de instalação do aparelho.

Basicamente é assim que funciona o processo. Não vou entrar em detalhes por que ai já seria um tutorial e de lá pra cá muita coisa mudou.. Logo terei que atualizar o serviço da empresa para se adaptar ao novo esquema do FCM..

No post há duas referências que podem te ajudar.

Re: GMS - Notification Push

Enviado: Seg Jun 06, 2016 1:54 pm
por Gonzo
Foi uma explicação no escuro mais tá valendo o jeito é esperar vc ou alguém fazer um tutorial sobre o assunto, vlw xD

Re: GMS - Notification Push

Enviado: Ter Jun 07, 2016 10:32 am
por Eduardo Fernando
Aprendi e implementei ontem... vou preparar um tutorial aqui mesmo nesse post quando tiver um tempo livre

Re: GMS - Notification Push

Enviado: Seg Jun 13, 2016 7:47 pm
por Gonzo
OK, passando aqui só pra ver se rolou o tempo livre..      :u:

Re: GMS - Notification Push

Enviado: Ter Jun 14, 2016 3:56 pm
por Eduardo Fernando
Crie sua conta como no video, você nem precisa seguir aquele video, criar uma conta no firebase é muito simples...
Crie seu projeto (nome do jogo).
Depois de criar vai abrir o console do seu projeto como nessa imagem.
Imagem
Chave do servidor : É usada no seu servidor para enviar as notificações, eu uso servidor java.
Esse é o codigo que uso para enviar as notificações

Código: Selecionar todos

System.out.println("FIREBASE send notification");
        HttpClient httpClient = HttpClientBuilder.create().build(); //Use this instead 
        try {
            HttpPost request = new HttpPost("https://fcm.googleapis.com/fcm/send");
            StringEntity params =new StringEntity(" { \"data\": {\"ntf_message\": \""+texto+"\", \"ntf_title\": \""+titulo+"\", \"tipo\": \""+tipo+"\" }, \"registration_ids\": [ \""+id_registration+"\" ] }");
            request.addHeader("Authorization","key=AQUI VOCÊ COLOCA A CHAVE DO SERVIDOR");
            request.addHeader("Content-Type", "application/json");
            
            request.setEntity(params);
            HttpResponse response = httpClient.execute(request);
            System.out.println("verificar se deu certo:"+response.getStatusLine());
            System.out.println("outro log:"+org.apache.http.util.EntityUtils.toString(response.getEntity()));
            
        }catch (Exception ex) {
            // handle exception here
            Logger.getLogger(Usuario.class.getName()).log(Level.SEVERE, null, ex);
        }
 Agora aquele ID do remetente você coloca no game maker, 
Imagem
Quando você marcar enable push notifications, o proprio game maker vai mostrar um pop-up dizendo que você deve baixar a extensão da google play services, baixe ela.
Se você quiser fazer um teste, só pra ver como é uma notificação, depois de tudo isso você coloca esse codigo.

Código: Selecionar todos

var fireTime = date_inc_minute(date_current_datetime(), 1);
 var data = "daily_reward";
 push_local_notification(fireTime, "Ahoy!", "Catch The Haggis Has A Present", data);
Esse é o codigo que a yoyogames deixa no help (apertando f1) do game maker, só que eu alterei em vez de 1 dia, em 1 minuto ele vai disparar a notificação, lembre-se que depois q esse codigo executar você deve deixar o aplicativo em segundo plano, depois de 1 minuto você vai ver a notificação.
Agora, vamos enviar do nosso servidor a notificação, cada usuario tem uma identificação que serve pro servidor do firebase saber qual celular vai receber a notificação.
Pra pegar essa identificação basta criar um objeto qualquer e criar um evento de PUSH NOTIFICATION nele e colocar :

Código: Selecionar todos

var type = ds_map_find_value(async_load, "type");
 var status = ds_map_find_value(async_load, "status");
 if status == 0
    {
    //error of some kind
    var error = ds_map_find_value(async_load, "error");
    show_debug_message("error=" + string(error));
    }
 else
    {
    if type == "register"
       {
       global.reg_id = ds_map_find_value(async_load, "reg_id");
       }
    else
       {
       var data = ds_map_find_value(async_load, "data");
          if data == "daily_reward"
          {
          global.Gold += 1000;
          }
       }
    }
Esse codigo acima tirei do help do game maker,
 "global.reg_id = ds_map_find_value(async_load, "reg_id");" 
Nessa parte quando o aplicativo abrir no celular, ela será executado, e esse codigo que o FCM gerar o game maker vai colocar na variavel global.reg_id, você pode colocar o nome da variavel que quiser, eu recomendo que ela seja GLOBAL pra facilitar o acesso a ela.
depois que você pegou esse valor, basta envia-lo ao servidor, se você voltar la no topo deste tutorial vai ver que tem essa linha no meu servidor java.

Código: Selecionar todos

StringEntity params =new StringEntity(" { \"data\": {\"ntf_message\": \""+texto+"\", \"ntf_title\": \""+titulo+"\", \"tipo\": \""+tipo+"\" }, \"registration_ids\": [ \""+id_registration+"\" ] }");
Esse é um JSON, é assim que ele é criado em java (existe outros modos de cria-lo).
Ali em id_registration você vai colocar o codigo que veio do global.reg_id.

Quando essa linha for executada no servidor e tudo estiver devidamente configurado, a notificação irá para o celular da pessoa.
Caso de algum erro, pode ser que eu esteja esquecendo alguma parte, dai você me diz.
8)

Re: GMS - Notification Push

Enviado: Ter Jun 14, 2016 6:13 pm
por Gonzo
  Ok estou seguindo os passos, então primeiro eu criei um novo projeto, em seguida peguei o ID do remetente que creio eu seja o ID do App, próxima etapa vc disse que usa um servidor java para enviar as mensagens é isso? bom eu não sei como funciona mais parece que é possível enviar as mensagens do próprio Firebase como foi mostrado no vídeo no inicio do post dai não precisaria de um servidor java, eu adicionei o nome do pacote onde foi solicitado na plataforma Firebase, parece uma espécie de identificador de app correto? agora o arquivo: google-services.json  que provavelmente é semelhante ao arquivo 
JSON que você colou aqui logo acima, colei tbm o GCM SENDER ID mais parece que eu não consegui ir muito alem da sua explicação 
link do meu arquivo GMS >>  https://dl.dropboxusercontent.com/u/4532144/notificacaoteste.gmz   obs: O serviço Firebase faz a parte de servidor tbm né? 
Imagem

Re: GMS - Notification Push

Enviado: Qui Jun 16, 2016 5:58 pm
por Eduardo Fernando
Nessa tela que você printou basta colocar o código que é gerado do seu app quando ele é executado (global.reg_id) para o destinatário da mensagem que vc vai mandar pelo console do firebase

Re: GMS - Notification Push

Enviado: Sáb Jun 18, 2016 12:37 pm
por Gonzo
Que tal postar seu gmz pra eu ver como vc fez funcionar?

Re: GMS - Notification Push

Enviado: Seg Jun 20, 2016 10:31 am
por Eduardo Fernando
Não posso porque vou ganhar dinheiro com ele... Cara não tem erro, você só precisa ativar o push notification e usar o push_local_notification(), seu app ja vai estar habilitado pra receber notificação, ou seja, seu problema não deve estar no app caso tenha seguido meu tutorial corretamente, você deve estar com dificuldades no console do firebase... Vai fuçando ai que uma hora você consegue

Re: GMS - Notification Push

Enviado: Seg Jun 20, 2016 2:37 pm
por Gonzo
começou tentando ajudar, terminou falando que vai ficar milionário com o code e por isso não posta a engine, não era melhor ter ficado neutro como todo mundo?!