User Tools

Site Tools


br-130-app-dev


Desenvolvimento de novos APPs

Esse capítulo descreve o protocolo de comunicação entre APPs e o webservice Followzup, para ser usado como referência para o desenvolvimento de APPs para diferentes tipos de dispositivos móveis.

Qualquer que seja a linguagem utilizada, ela deve dispôr das bibliotecas de criptografia AES e RSA compatíveis com PHP, utilizado no desenvolvimento do webservice que atende as solicitações dos dispositivos móveis.



Comunicação com o webservice

Toda comunicação com o webservice é realizada por meio de POST. No caso das solicitações dos dispositivos móveis, a URL de destino do POST é “http://followzup.com/wsdevice”.

O APP deverá criar as seguintes variáveis POST:

id Código de identificação do dispositivo solicitante, em texto claro sem criptografia (Device-ID)
ou Código de identificação da Interface para registro de novos dispositivos, em texto claro sem criptografia (Interface-ID)
key Chave AES (temporária), criptografada com a chave pública do dispositivo (ou da interface) e codificada em Base64 / URL Encode.
frame String criptografado com a chave AES (temporária), contendo o XML de solicitação (comando, número de sequência da solicitação e parâmetros), e codificado em Base64 / URL Encode.



XML de resposta do POST

Após o processamento da solicitação contida no POST, o webservice retorna o seguinte XML para o solicitante:

<?xml version="1.0" encoding="utf-8"?>
<followzup>
<retcode>código-de-retorno</retcode>
<retframe>xml-de-resposta-da-solicitação</retframe>
<retmd5>md5-de-resposta</retmd5>
</followzup>

Onde:

  • código-de-retorno: String não criptografado, contendo o valor “0” (zero) para as solicitações executadas com sucesso, ou o código de erro correspondente, composto por 4 dígitos numéricos.
  • xml-de-resposta-da-solicitação: String criptografado com a mesma chave AES utilizada no envio da solicitação (chave temporária), e codificado em Base64. O conteúdo do XML depende do que foi solicitado.
  • md5-de-resposta: String contendo o hash md5 do campo acima.



Sequência da solicitação

O XML enviado ao webservice contém os parâmetros necessários para executar a solicitação do dispositivo. Esse XML é construído pelo APP.

Além do comando a ser executado e dos parâmetros necessários para sua execução, o XML deve incluir a sequência da solicitação, que corresponde a um número inteiro iniciado em 1 a partir do registro do dispositivo. Após a solicitação com sequência N, a próxima solicitação deve obrigatoriamente possuir a sequência N + 1.

IMPORTANTE: No registro inicial do dispositivo não é necessário informar o número de sequência da solicitação do, pois o dispositivo ainda não foi registrado.



Comandos disponíveis

Os comandos disponíveis para envio de solicitações de dispositivos são os seguintes:

  • UREG: Cancelar o registro de dispositivos;
  • LSUB: Listar assinaturas;
  • LKUP: Pesquisar canais de informações;
  • SCHN: Assinar canal de informação;
  • UCHN: Cancelar assinatura de canal;
  • ICON: Obter ícones de canais;
  • RESP: Enviar mensagem para o canal de informação;
  • DMSG: Excluir mensagem;
  • CHCK: Verificar novas mensagens.



Código Stamp

Todas as solicitações encaminhadas para o webservice devem conter o código Stamp da Interface. O código Stamp é um string de 128 bytes gerado aleatóriamente pelo Followzup na inclusão de uma nova Interface.

Cada registro de Interface está associado a um APP, e a inclusão de novas Interfaces só pode ser realizada pelo administrador do Followzup.

Para desenvolver um novo APP, o desenvolvedor deve solicitar o registro da nova Interface ao administrador do Followzup. Após a inclusão, o desenvolvedor receberá o novo código da Interface (Interface-ID), o código Stamp e a chave pública RSA da Interface para registro de novos dispositivos.



Base Local

A seguir, as informações armazenadas na base local do dispositivo.


Dados do dispositivo:

  • Interface-ID: Código da Interface (APP);
  • Stamp: Código Stamp da Interface;
  • Device-ID: Código do dispositivo;
  • User-ID: Código do usuário;
  • Device-tag: Nome do dispositivo;
  • Public-key: Chave pública RSA (formato BASE64);
  • Public-key-module: Módulo da chave pública RSA (formato BINARY);
  • Public-key-index: Índice da chave pública RSA (formato BINARY);
  • Message-ID: Número da última mensagem recebida;
  • MD5-channel-list: Hash MD5 da lista de canais;
  • Last-sequence: Sequência da última solicitação.


Lista de assinaturas:

  • Channel-tag: Tag do canal;
  • Subscription-code: Código da assinatura do canal;
  • Flag-response: Flag indicativo para apresentação da caixa de texto do canal.


Lista de pesquisa:

  • Channel-tag: Tag do canal;
  • Presentation-text: Texto de apresentação do canal;
  • Flag-private: Flag indicativo de canal privado;
  • Flag-private-code: Flag indicativo de Private-Code.


Lista de ícones:

  • Channel-tag: Tag do canal;
  • MD5-icon: Hash MD5 da imagem do ícone;
  • Icon-image: String da imagem (jpeg/Base64).


Lista de mensagens:

  • Channel-tag: Tag do canal;
  • Message-ID: Número da mensagem;
  • Data/Hora: Data e hora de envio da mensagem (UTC);
  • Message-text: Texto da mensagem (Base64);
  • Message-URL: URL da mensagem (Base64).



Fluxo de operação

A seguir, o fluxo de operação do APP, indicando onde são executados cada comando.

fzup_br.jpg


br-130-app-dev.txt · Last modified: 2017/03/08 09:16 by admin

Page Tools