
Obrigado por visitar a The Game Makers Brasil |
GMS - Notification Push
GMS - Notification Push
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 > 

......∩____∩............_______...
......| (• ◡•)| ノ\(❍ᴥ❍ʋ)..
Não seja uma cabrita selvagem "tutankhamun"
......| (• ◡•)| ノ\(❍ᴥ❍ʋ)..
Não seja uma cabrita selvagem "tutankhamun"
Re: GMS - Notification Push
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.
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
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"
......| (• ◡•)| ノ\(❍ᴥ❍ʋ)..
Não seja uma cabrita selvagem "tutankhamun"
- Eduardo Fernando
- Novato
- Reações: 0
- Mensagens: 7
-
Re: GMS - Notification Push
Aprendi e implementei ontem... vou preparar um tutorial aqui mesmo nesse post quando tiver um tempo livre
Re: GMS - Notification Push
OK, passando aqui só pra ver se rolou o tempo livre.. 

......∩____∩............_______...
......| (• ◡•)| ノ\(❍ᴥ❍ʋ)..
Não seja uma cabrita selvagem "tutankhamun"
......| (• ◡•)| ノ\(❍ᴥ❍ʋ)..
Não seja uma cabrita selvagem "tutankhamun"
- Eduardo Fernando
- Novato
- Reações: 0
- Mensagens: 7
-
Re: GMS - Notification Push
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.

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
Agora aquele ID do remetente você coloca no game maker,

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.
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 :
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.
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.

Crie seu projeto (nome do jogo).
Depois de criar vai abrir o console do seu projeto como nessa 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);
}

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);
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;
}
}
}
"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+"\" ] }");
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.

Re: GMS - Notification Push
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é?

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é?

......∩____∩............_______...
......| (• ◡•)| ノ\(❍ᴥ❍ʋ)..
Não seja uma cabrita selvagem "tutankhamun"
......| (• ◡•)| ノ\(❍ᴥ❍ʋ)..
Não seja uma cabrita selvagem "tutankhamun"
- Eduardo Fernando
- Novato
- Reações: 0
- Mensagens: 7
-
Re: GMS - Notification Push
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
Que tal postar seu gmz pra eu ver como vc fez funcionar?
......∩____∩............_______...
......| (• ◡•)| ノ\(❍ᴥ❍ʋ)..
Não seja uma cabrita selvagem "tutankhamun"
......| (• ◡•)| ノ\(❍ᴥ❍ʋ)..
Não seja uma cabrita selvagem "tutankhamun"
- Eduardo Fernando
- Novato
- Reações: 0
- Mensagens: 7
-
Re: GMS - Notification Push
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
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"
......| (• ◡•)| ノ\(❍ᴥ❍ʋ)..
Não seja uma cabrita selvagem "tutankhamun"
Quem está online
Usuários navegando neste fórum: Nenhum usuário registrado e 4 visitantes