Obrigado por visitar a The Game Makers Brasil 😁 Use o fórum de Dúvidas para fazer perguntas. Se está em busca de aprender dê uma olhada nos tutoriais.

GMS - Notification Push

Perguntas? A comunidade te ajuda a resolver.
Avatar do usuário
Gonzo
Membro
Membro
Reações: 0
Mensagens: 194

GMS - Notification Push

Mensagem por Gonzo » Dom Jun 05, 2016 12:10 am

   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:
......∩____∩............_______...
......| (• ◡•)| ノ\(❍ᴥ❍ʋ)..
Não seja uma cabrita selvagem "tutankhamun"

Avatar do usuário
itallo
Membro
Membro
Reações: 0
Mensagens: 22

Re: GMS - Notification Push

Mensagem por itallo » Dom Jun 05, 2016 9:48 pm

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.

Avatar do usuário
Gonzo
Membro
Membro
Reações: 0
Mensagens: 194

Re: GMS - Notification Push

Mensagem por Gonzo » Seg Jun 06, 2016 1:54 pm

Foi uma explicação no escuro mais tá valendo o jeito é esperar vc ou alguém fazer um tutorial sobre o assunto, vlw xD
......∩____∩............_______...
......| (• ◡•)| ノ\(❍ᴥ❍ʋ)..
Não seja uma cabrita selvagem "tutankhamun"

Avatar do usuário
Eduardo Fernando
Novato
Novato
Reações: 0
Mensagens: 7

Re: GMS - Notification Push

Mensagem por Eduardo Fernando » Ter Jun 07, 2016 10:32 am

Aprendi e implementei ontem... vou preparar um tutorial aqui mesmo nesse post quando tiver um tempo livre

Avatar do usuário
Gonzo
Membro
Membro
Reações: 0
Mensagens: 194

Re: GMS - Notification Push

Mensagem por Gonzo » Seg Jun 13, 2016 7:47 pm

OK, passando aqui só pra ver se rolou o tempo livre..      :u:
......∩____∩............_______...
......| (• ◡•)| ノ\(❍ᴥ❍ʋ)..
Não seja uma cabrita selvagem "tutankhamun"

Avatar do usuário
Eduardo Fernando
Novato
Novato
Reações: 0
Mensagens: 7

Re: GMS - Notification Push

Mensagem por Eduardo Fernando » Ter Jun 14, 2016 3:56 pm

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)

Avatar do usuário
Gonzo
Membro
Membro
Reações: 0
Mensagens: 194

Re: GMS - Notification Push

Mensagem por Gonzo » Ter Jun 14, 2016 6:13 pm

  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
......∩____∩............_______...
......| (• ◡•)| ノ\(❍ᴥ❍ʋ)..
Não seja uma cabrita selvagem "tutankhamun"

Avatar do usuário
Eduardo Fernando
Novato
Novato
Reações: 0
Mensagens: 7

Re: GMS - Notification Push

Mensagem por Eduardo Fernando » Qui Jun 16, 2016 5:58 pm

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

Avatar do usuário
Gonzo
Membro
Membro
Reações: 0
Mensagens: 194

Re: GMS - Notification Push

Mensagem por Gonzo » Sáb Jun 18, 2016 12:37 pm

Que tal postar seu gmz pra eu ver como vc fez funcionar?
......∩____∩............_______...
......| (• ◡•)| ノ\(❍ᴥ❍ʋ)..
Não seja uma cabrita selvagem "tutankhamun"

Avatar do usuário
Eduardo Fernando
Novato
Novato
Reações: 0
Mensagens: 7

Re: GMS - Notification Push

Mensagem por Eduardo Fernando » Seg Jun 20, 2016 10:31 am

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

Avatar do usuário
Gonzo
Membro
Membro
Reações: 0
Mensagens: 194

Re: GMS - Notification Push

Mensagem por Gonzo » Seg Jun 20, 2016 2:37 pm

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?! 
......∩____∩............_______...
......| (• ◡•)| ノ\(❍ᴥ❍ʋ)..
Não seja uma cabrita selvagem "tutankhamun"

Trancado

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante