Tratamento de Erros¶
Cada método possui parâmetros que quando não atendidos de acordo com as exigências da API poderão resultar em erro da requisição, e neste caso o quando o result
retorna com error indica que algo invalidou a requisição. Neste caso é necessário imprimir a variável message para visualizar o erro e entender o que houve de errado, veja exemplo abaixo onde forçamos a requisição de um erro:
Requisição:
require 'Src/ZapMEApi.php';
$zapme = new ZapMEApi;
$zapme->api = 'api-7815696ecbf1c96e6894b';
$zapme->secret = '0876943851';
$zapme->method = 'sendmessage';
//$zapme->phone = '5599999999999'; comentamos a linha do telefone para não enviá-lo, forçando o erro.
$zapme->message = 'Olá, teste!';
$return = $zapme->Run();
if ($return['result'] === 'success' && $result['status_result'] === 'message_queued')
{
// se tudo deu certo ... debugamos o retorno da variável $return
var_dump($return);
}
else
{
// se não ... iremos imprimir somente o index 'message' que demonstrará qual é o erro
echo $return['message'];
}
Erro do Exemplo:
"O campo phone é requerido"
Exemplo completo do erro:
{
"result": "error",
"date": "2020-09-15 12:32:39",
"status": 400,
"status_result": "validation_failure",
"message": "O campo phone é requerido"
}
Observações:
O tipo de retorno é jSON
Em toda resposta existem 3 (três) índices padrões:
result
,date
,status
A
date
é a data atual retornada em formato inglêsO índice
message
em 90% dos casos é retornado sem traços, acentos e pontosSe
status
for 400 o status do HTTP será definido como “400 Bad Request”Se
status
for 200 o status do HTTP será definido como “200 OK”
Lista dos Status de Erro¶
Para auxiliar no tratamento dos erros criamos a sintaxe status_result
que consiste em uma abreviatura do erro. Veja abaixo uma lista com todos os status_result
disponíveis para entender o significado de cada um deles.
nothing_to_do
Ërro de parâmetros fundamentais
inexistent_method
Método informado inexistente/inválido
validation_failure
Falha de validação de parâmetros ou de recursos para uso da API
invalid_token
Falha de verificação de token de segurança (interno)
qr_code_unauthenticated
QR Code não autenticado
phone_in_use
Telefone informado já encontra-se em uso na agenda método: addcontact
maximum_contacts
Quantidade máxima de contatos na agenda foi atingida método: addcontact
group_non_exist
Grupo informado não existe na agenda método: addcontact
contact_created
Contato criado com sucesso método: addcontact
limit_reached
Envio abortado por excesso de limite definido método: sendmessage
ignore_out_of_expedient
Envio abortado por configuração de abortar envio no horário de expediente método: sendmessage
document_error
Envio abortado por erro no arquivo anexado método: sendmessage
message_queued
Envio efetuado com sucesso. Mensagem em fila método: sendmessage
message_not_found
Id de mensagem não encontrada método: consultmessage
consulted_successfully
Consulta de mensagem retornada com sucesso método: consultmessage
listed_successfully
Consulta de lista de mensagens retornada com sucesso método: listmessages