O Conhecimento

O conhecimento é inútil a menos que você o compartilhe.

segunda-feira, 28 de outubro de 2013

Push Notification, SAP e PUSHBOTS.com

Faltava uma perna....um braço....ou um teste....Enviar uma requisição HTTP (REST) via servidor SAP, para o PUSHBOTS e receber no celular...conforme post anterior.

Vamos as instruções.... não entrarei em detalhes de como são as configurações HTTP no SAP, nem de infraestrutura para o funcionamento, não é essa a minha praia nem o objetivo....vamo lá....

Na SM59, foi criado uma conexão http para servidor externo, no nosso caso pushbots.com





Após isso criamos o seguinte report, porém deve ser trocar o valor das variaveis de cabeçalho.
X-PUSHBOTS-APPID e X-PUSHBOTS-SECRET.


*&---------------------------------------------------------------------*
*& Report  ZTESTPUSHBOTS
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT  ZTESTPUSHBOTS.

*report zparsepush.

dataclient type ref to if_http_client,
      success type abap_bool.

" Create HTTP client
call method cl_http_client=>create_by_destination
  exporting
    destination        'PUSHBOTS'
  importing
    client             client
  exceptions
    argument_not_found 1
    plugin_not_active  2
    internal_error     3
    others             4.
if sy-subrc 0.

  " Setup HTTP request
  client->request->set_method'POST' ).
  client->request->set_content_type'application/json' ).
  client->request->set_header_fieldname 'X-PUSHBOTS-APPID' value 'Sua aplicação PUSHBOTS' ).
  client->request->set_header_fieldname 'X-PUSHBOTS-SECRET' value 'Seu hash secreto PUSHBOTS' ).
  client->request->set_cdata'{"platform" : "1" , "msg" : "TESTE DO SAP" , "sound" : "BEEP" , "badge" : "1"}' ).

  " Send request
  call method client->send
    exceptions
      http_communication_failure 1
      http_invalid_state         2
      http_processing_failed     3
      http_invalid_timeout       4
      others                     5.
  if sy-subrc 0.

    " Receive response
    call method client->receive
      exceptions
        http_communication_failure 1
        http_invalid_state         2
        http_processing_failed     3
        others                     4.
    if sy-subrc 0.

      " Read response
      data status_code type i.
      client->response->get_statusimporting code status_code ).
      if status_code '200'.
        success abap_true.
      endif.

    endif.

    " Close connection
    call method client->close
      exceptions
        http_invalid_state 1
        others             2.

  endif.

endif.

if success abap_true.
  write'Notification sent!'.
else.
  write'Something went wrong :('.
endif.





Tai o robozinho sinalizando a mensagem e a mensagem em si........não muito complexo...

IMPORTANTE: a fonte no link abaixo não para o mesmo servidor, mas para o parse que presta os mesmos serviços do PUSHBOTS.COM.














quarta-feira, 23 de outubro de 2013

Brincando com o Android......

Muito bakana esse mundo Android, principalmente a velocidade com o conhecimento sobre mobile vem acelerando as coisas..o mercado ...é a tecnologia sempre gerando demanda....

Dai....vem um desafio enviar mensagem (Push Notification via Android), aquelas mensagens que você recebe no seu celular na barra de notificação aquela onde te mostra o sinal do celular, o consumo da bateria, se chegou mensagem, ligação perdida, etc...etc...etc...

Bom, todas as plataformas, pelo que li, possuem esse tipo de serviço, mas aqui no caso só abordei a Android, porque para testar as outras teria que ter os devices próprios e também escrever uma aplicação para cada......Apesar de alguns frameworks como phonegap/cordova/aerogear dentre outros prometeram uma aplicação hibrida, ou seja, com javascript e html5, a aplicação funcione em todas as plataformas. (não acredito muito nessa mágica, mas também não desacredito)

Existem dezenas de server de terceiros que fornecem códigos exemplos dentre outros benefícios para que você (sua aplicação) use seu serviço e pague uma merreca por ele, neste caso o escolhido e o que funcionou foi o pushbots.com.

Para o envia das mensagens escolhemos a REST, comunicação simples e fácil via HTTP, para isso usamos uma app para o CHROME chamada Advanced REST Client, de uma conta no google e habilitação da API / serviço Google Cloud Messaging for Android, e claro de uma conta no server pushbots.com.

Não entrarei em detalhes aqui sobre a criação/habilitação do serviço no google, nem detalhes sobre o pushbots, a ideia é repassar o conhecimento sobre como funciona o mecanismo de envio de push notification.

Vamos aos passos:

1) Habilitar serviço/API no Google (a apple também possui a dela)




2) Criar uma conta no server pushbots.com



3)Baixar o modelo de projeto para android do site pushbots.com e realizar as respectivas alterações, salvar a aplicação no eclipse e mandar a app para seu device android.


ps: apaguei as referencia sobre projetos e outras chaves senão vira festa.....

Vamos ao funcionamento, até agora foi só o preparo para a coisa funcionar, longe de ser algo profissional, mas sim um curioso para matar a curiosidade de saber como as coisas funcionam.

1) Instalar a aplicação no seu android....tai um display da aplkicação no celular, o robo verde BugDroid  (pushbots). O que a aplicação faz, resgitra seu device no pushbots para recebimento de mensagens (Push Notifications)




 Depois do registro efetivado, não quer dizer que todo device android vai ser registrado, por algum motivo alguns não foram, porque?? nem procurei saber, talvez um antivirus no celular, ou problema de versão sei lá, isso agora não vem ao caso.

2) Envio das mensagens via REST, simplicidade em pessoa, assim eu defino o REST, sem complicação de XML, nem nada.....é o que o mundo de troca de informação precisava....alias ele já tinha só eu que ainda não conhecia....rsssss





3) só verificar a mensagem no device.......tai as imagens que não me deixam mentir...... Obrigado ao Leo Benedeti, pelo envio de tela.....e de me ajudar como cobaia das minhas experiencias.....valeu Leo!!!!1


detalhe dos dois robozinhos verdes no alto, na barra de notificação do android.....Abaixo a notificação........



Longe de ser algo profissional, não foi este o proposito, até que para isso devo percorrer ainda um longo trajeto para suportar uma aplicação robusta.]

Mas fica a ideia, de uma nova maneira de se comunicar com os empregados de uma empresa, com os diretores, CLIENTES.....etc...etc....o que a imaginação mandar....basta ter a ideia e implementar....

O que fala internet HTTP, fala REST, então o céu é o limite........


abs.

 
Blogger Templates