DevSecOps

3 mar, 2015

Aprenda a criar mensagens de push no Windows Azure

Publicidade

O Mobile Services do Windows Azure pode ser um importante aliado para sua aplicação Android. Neste artigo, vamos fazer um passo a passo de como criar um push para seu app usando a ferramenta. Vamos começar?

No seu Management Portal, clique no botão “novo”, indicado pela seta verde:

Passo-1

Depois, selecione computação, serviço móvel e clique na opção criar:

Passo-2

Nesta próxima tela você vai precisar especificar uma URL para seu serviço móvel. Pode criar qualquer uma. No nosso exemplo, vamos criar: PushTestInAndroid.

A URL vai ser validada e, caso o nome não esteja disponível, pode definir qualquer outro nome de sua escolha.

A próxima opção é o banco de dados que o serviço móvel vai utilizar para persistir os dados. Como não possuo nenhum banco de dados neste exemplo, vou selecionar a opção “Criar um banco de dados SQL 20 MB gratuito”. Caso você não possua a opção do gratuito, selecione a opção “Criar uma nova instância do banco de dados SQL”.

Depois disso, selecionamos a região em que vai estar nosso serviço móvel e qual linguagem usaremos para gerenciar nosso back-end. Vamos escolher Javascript, e aí é só avançar:

Passo-3

No próximo passo, vamos escolher o nome do nosso banco de dados para nosso serviço móvel e o servidor que no qual ele vai se encontrar.

Como ainda não possuímos nenhum servidor, vamos selecionar a opção “novo servidor do banco de dados SQL” e vamos popular os campos de Nome de Logon do servidor, senha e região onde o servidor vai se encontrar. Caso seja selecionada uma região diferente de seu serviço móvel, o Azure vai lhe dar um “warning” de que os mesmos estão em regiões diferentes. Selecionamos a mesma região de nosso serviço móvel:

Passo-4

E em apenas alguns minutos levantamos nosso serviço móvel e banco de dados. Se quiser saber se seu serviço móvel está de pé, é só visualizar a coluna “STATUS”.

O próximo passo é implementar o back-end do nosso serviço para realizar o push.

Neste exemplo, vamos realizar um push quando acontecer um POST em uma tabela no nosso serviço móvel.

Para fazer isso, clique no nome do seu serviço móvel. No nosso exemplo, “PushTestInAndroid”:

Passo-5

No home do nosso serviço móvel possuímos várias áreas para gerenciamento. Vamos selecionar no menu superior a opção “DADOS”:

Passo-6

Agora, é só clicar em “ADICIONAR UMA TABELA”. No campo “NOME DA TABELA”, vamos usar o nome “message”. Para as outras opções, podemos manter o padrão e depois disso clicamos em “check” no canto inferior direito:

 

Passo-7

Excelente! Vemos agora que foi criada uma tabela chamada “message”. Se clicarmos nesta tabela, veremos quatro opções no menu superior. Clicamos em “SCRIPT”:

Passo-8

Após o clique, veremos abaixo uma combobox de “Operação”, que vai estar na opção “Inserir” e logo abaixo o nosso código de back-end, que é executado antes de inserir. Atualmente o código é apenas este:

InsertInitCod

Vamos modificar o código para que, quando um novo item for inserido em nossa tabela “message”, enviemos um push para o Google Cloud Message, que vamos configurar no próximo passo:

InsertNewCod

Neste código, criamos um object chamado Payload com os dados que recebemos do nosso POST. Antes de inserirmos o dado na tabela, nós o enviamos por Push, o que garante que só vamos inseri-lo na tabela se o dado for enviado via Push para o Google Cloud Message.

Após implementarmos nosso back-end, precisaremos configurar nosso Google Cloud Message para receber nossa mensagem – o que é muito simples. Basta resgatar sua API Key do GCM, voltar ao portal do Azure e na home do nosso Serviço Móvel escolher a opção “ENVIAR POR PUSH”:

Passo-9

Após clicarmos no menu no fim da página, inserimos nossa API Key do GCM na área com o nome “Confirgurações do Google Cloud Messaging”:

Passo-10

E pronto! Nosso serviço móvel no Azure já está pronto para enviar Pushs para nosso app Android,

E agora o que falta? O nosso app! Vamos utilizar o Android Studio 1.0 para criarmos um aplicativo que receba as mensagens. Se você não possui o Android Studio, pode baixá-lo neste link.

Seguindo, inicializamos nosso Android Studio e clicamos em “Start a new Android Studio project”:

Passo-11

Agora damos um nome para a nossa aplicação e criamos sua Company Domain. Como é somente um exemplo, vou criar o Aplication name como “MyReceivePush” e a Company Domain como “rafaelmiceli.MyReceivePush.com”:

Passo-12

Selecione a API 15 do Android e siga:

Passo-13

Como é uma aplicação para fim de testes, criaremos apenas uma Blank Activity.

Passo-14

Por fim, vamos manter os valores default da criação da nossa activity e clicamos em Finish:

Passo-15

Antes de implementar o recebimento do Push precisaremos referenciar os .jar

notifications-1.0.1

notification-hubs-0.4

Que podem ser encontrados neste link e devem ser adicionados à pasta lib do nosso projeto Android.

Depois disso, vamos precisar inserir o seguinte código em nosso AndroidManifest.xml:

Passo-17

E este código em nosso build.gradle (Moduel: app):

Passo-18

Agora vamos à nossa MainActivity:

Passo-16

E colocamos o seguinte código:

Passo-19

Perceba que precisaremos do nosso número do projeto no Google Cloud Message em nosso código, além da string de conexão do nosso ServiceBus no Azure. Vou mostrar como pegar a string de conexão.

Primeiro, vamos novamente ao nosso portal no Azure. Lá, acessamos no nosso serviço móvel o menu “ENVIAR POR PUSH”:

Vamos selecionar o Service Bus do nosso teste de push:

Service-Buss-Paso-1

Nesta página clicamos em “Exibir Cadeia de Conexão”:

Service-Buss-Paso-2

E vamos copiar nossa cadeia de conexão de nome “DefaultListenSharedAccessSignature”:

Service-Buss-Paso-3

Com isso, voltamos à nossa aplicação Android e em nosso MainActivity atribuímos à variável conncetionString o valor que acabamos de copiar. Por parâmetro, o nome do nosso ServiceBus Hub é “pushtestinandroidhub”.

Após isso, vamos criar uma classe chamada MyHandler, clicando com o botão direito em cima do nosso namespace com.myreceivepush:

Passo-20

Passo-21

E vamos implementá-la da seguinte forma:

Passo-22

Agora precisamos testar o recebimento do nosso Push enviando um POST ao nosso endereço do Serviço Móvel que criamos no Azure. Para isso, podemos criar o POST com o Postman ou o Fiddler.

Postman:

postman-post

Fiddler:

fiddler-post

Após o envio do POST, veremos que uma nova linha foi adicionada na tabela do nosso serviço móvel e que recebemos um push em nosso app.

Ufa! É isso galera. Se tiver qualquer dúvida, sugestão ou se alguma coisa der errado no meio do caminho, é só deixar abaixo o seu comentário.

Até a próxima!