MPI/API/EvtUser

De uTech Tecnologia
(Diferença entre revisões)
Ir para: navegação, pesquisa
(PHP)
(Exemplo)
Linha 59: Linha 59:
 
* '''401''' => Erro de Autenticação.
 
* '''401''' => Erro de Autenticação.
 
* '''200''' => OK.
 
* '''200''' => OK.
 +
 +
<br/><br/>
 +
=== Buitl-in Respose  ===
 +
 +
No próprio evento, é possível executar outros comandos, inserindo no corpo da resposta (no caso '''200 OK''') enviado pela aplicação, um ''array'' com os dados do comando a ser executado. Os parâmetros aceiros são descritos abaixo:
 +
 +
{| class="wikitable" width="65%"
 +
! align="center" colspan="2" | Parâmetros enviados para o Porteiro
 +
|-
 +
| align="left"| request || Comando a ser enviado. Ex'''relay''' ou '''play'''.
 +
|-
 +
| align="left"| interface || '''Para relay''': Define qual relê será habilitado ou desligado
 +
* '''0''': Ambas interfaces (1 e 2).
 +
* '''1''': Interface 1.
 +
* '''2''': Interface 2.
 +
|-
 +
| align="left"| state || '''Para relay''':  Define o estado do relê:
 +
* '''on:''' => Ligado
 +
* '''off:''' => Desligado
 +
* '''hold:''' => Mantem aberta porta/relê até receber um evento '''off''' da API ou um comando externo (ex. interface WEB, DTMF).
 +
|-
 +
| align="left"| message || '''Para play''':  Define a mensagem a reproduzir. Ver mensagens na documentação do comando [[MPI/API/PlayMessage|'''PlayMessage''']]
 +
|}
 +
 +
'''Exemplo - acionando o relê para abertura da interface 1''':
 +
{| class="wikitable"
 +
! style="text-align: left; font-weight: bold;" | <pre>HTTP/1.1 200 OK
 +
Content-Type: application/json
 +
Content-Length: 167
 +
{
 +
  "request"  :"relay",
 +
  "interface": "1",
 +
  "state"    :"on"
 +
}
 +
</pre>
 +
|}
 +
 +
 +
 +
'''Exemplo - acionando o relê para abertura da interface 1 e reproduzindo a mensagem de ''acesso liberado''''':
 +
{| class="wikitable"
 +
! style="text-align: left; font-weight: bold;" | <pre>HTTP/1.1 200 OK
 +
Content-Type: application/json
 +
Content-Length: 167
 +
 +
[
 +
  {
 +
  "request"  :"relay",
 +
  "interface": "1",
 +
  "state"    :"on"
 +
  },
 +
  {
 +
  "request" :"play",
 +
  "message" :"access_allowed"
 +
  }
 +
]
 +
 +
</pre>
 +
|}
 +
  
 
<br/><br/>
 
<br/><br/>

Edição de 21h50min de 29 de julho de 2019

Tabela de conteúdo


O Evento de Usuário e Senha é enviado do porteiro para a aplicação, informando uma tentativa de acesso via usuário e senha pelo teclado numérico do porteiro.

Evento

Parâmetros enviados pelo Porteiro
request user
user Usuário utilizado na tentativa de acesso
password Senha utilizada na tentativa de acesso
state Status da tentativa de acesso com usuário e senha
  • blocked: Usuário bloqueado.
  • granted: Usuário liberado.
  • doublepass: Passagem dupla detectada (Utilizado para controle de dupla passagem).
  • detected: Enviado quando o equipamento não está configurado no modo stadalone. Evento é repassado para a aplicação de terceiros.
  • panic: Estado enviado quando o usuário estiver configurado como Pânico (Campo Habilitar Pânico de cada usuário do porteiro).
interface Identificação da interface acessada/acionada.
  • 0: Interface de acionamento 1 e 2 do porteiro (Quando selecionado para acionamento simultâneo das interfaces 1 e 2)
  • 1: Interface de acionamento 1 do porteiro.
  • 2: Interface de acionamento 2 do porteiro.
  • 3 a 32: Interface de acionamento externo. Leitor ou Porteiro slave. Ver Leitores Externos
key Chave primária do usuário (Se configurado).
time Data/Hora do evento no formato ddmmYYYYHHMMSS onde:
  • dd: Dia do mês. (01 a 31)
  • mm: Mês do ano. (01 a 12).
  • YYYY: Ano no formato 1970.
  • HH: Hora do dia no formato 24H. (00 a 23).
  • MM: Minuto da hora. (00 a 59).
  • SS: Segundo. (00 a 59).

Exemplo

http://ip:porta/url/?request=user&user=1234&password=4567&interface=14&state=granted&time=26032019113933

Ou para pânico:

http://ip:porta/url/?request=user&user=4567&password=7890&interface=14&state=panic&time=26032019113544


Resposta: A aplicação deve responder:

  • 401 => Erro de Autenticação.
  • 200 => OK.



Buitl-in Respose

No próprio evento, é possível executar outros comandos, inserindo no corpo da resposta (no caso 200 OK) enviado pela aplicação, um array com os dados do comando a ser executado. Os parâmetros aceiros são descritos abaixo:

Parâmetros enviados para o Porteiro
request Comando a ser enviado. Exrelay ou play.
interface Para relay: Define qual relê será habilitado ou desligado
  • 0: Ambas interfaces (1 e 2).
  • 1: Interface 1.
  • 2: Interface 2.
state Para relay: Define o estado do relê:
  • on: => Ligado
  • off: => Desligado
  • hold: => Mantem aberta porta/relê até receber um evento off da API ou um comando externo (ex. interface WEB, DTMF).
message Para play: Define a mensagem a reproduzir. Ver mensagens na documentação do comando PlayMessage

Exemplo - acionando o relê para abertura da interface 1:

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 167
{
  "request"  :"relay",
  "interface": "1",
  "state"    :"on" 
}


Exemplo - acionando o relê para abertura da interface 1 e reproduzindo a mensagem de acesso liberado:

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 167

[
  {
   "request"  :"relay",
   "interface": "1",
   "state"    :"on" 
  },
  {
   "request" :"play",
   "message" :"access_allowed"
  }
]




PHP

<?php
 
$vars = $_REQUEST;
 
if(!isset($vars))
        exit(0);
 
if(isset($vars['request']) && strcmp($vars['request'],"user") == 0)
        $event = $vars['request'];
else {
        echo "Evento invalido!\n";
        exit(1);
}
 
printf("Evento: %s<BR>\n", $vars['request']);
printf("=>  User: %s<BR>\n", $vars['user']);
printf("=>  Pass: %s<BR>\n", $vars['password']);
printf("=> State: %s<BR>\n", $vars['state']);
printf("=>   key: %s<BR>\n", $vars['key']);
printf("==> Data: %s<BR>\n", $vars['time']);
?>



Evento com Resposta Built-in

<?php
 
$vars = $_REQUEST;
 
if(!isset($vars))
        exit(0);
 
if(isset($vars['request']) && strcmp($vars['request'],"card") == 0)
        $event = $vars['request'];
else {
        exit(1);
}
 
# Dados recebido no evevento do porteiro
#printf("Evento: %s<BR>\n", $vars['request']);
#printf("=>  Card: %s<BR>\n", $vars['card']);
#printf("=> State: %s<BR>\n", $vars['state']);
#printf("=>  Time: %s<BR>\n", $vars['time']);
#printf("=>   Key: %s<BR>\n", $vars['key']);

 
## Verificar se o usuário tem acesso e responder com o comando de liberação.
##

$data = array (
                0 => array ('request'   => 'relay',
                            'interface' => '1',
                            'state'     => 'on'),
 
                1 => array ('request' => 'play',
                            'message' => 'access_allowed'),
);
 
header('Content-type: application/json');
echo json_encode( $data );
 
?>



Voltar


Ferramentas pessoais
Espaços nominais

Variantes
Visualizações
Ações
Navegação
Ferramentas