Manipulando Contatos

Aviso

Por hora o SDK não disponibiliza a possibilidade de edições de um contato, mas a API sim. Iremos atualizá-lo em breve para disponibilizar tal recurso em um novo método.

Instancie o objeto da classe do pacote SDK PHP:

<?php

require 'vendor/autoload.php';

use ZapMeSdk\Base as ZapMeSdk;

$zapMeSdk = (new ZapMeSdk())
            ->withApi('SUA_API_AQUI')
            ->withSecret('SUA_CHAVE_SECRETA_AQUI');

No exemplo acima altere:

  • SUA_API_AQUI - para sua credencial de API

  • SUA_CHAVE_SECRETA_AQUI - para sua credencial de Chave Secreta

Criando Contatos

Crie um contato da seguinte forma:

$zapMeSdk->createContact('John', '11985850505');

A resposta será um objeto jSON como este:

{
    "status": true,
    "result": "created",
    "date": "2022-07-10 19:17:05",
    "data": {
        "id": 5031,
        "name": "Jhon",
        "phone": "(11) 98585-0505",
        "group": null,
        "status": "active",
        "created_at": "2022-07-10 19:17:05",
        "updated_at": "2022-07-10 19:17:05"
    }
}

Obtendo Contatos

Recupere os contatos da seguinte forma:

$zapMeSdk->getContacts();

A resposta será um objeto jSON como este:

{
    "status": true,
    "result": "success",
    "date": "2022-07-10 19:13:14",
    "data": [
        {
            "id": 32,
            "user_id": 1,
            "group_id": null,
            "name": "John",
            "phone": "(11) 98585-0505",
            "status": "active",
            "created_at": "2022-07-09 15:40:58",
            "updated_at": "2022-07-09 15:40:58"
        },
        {
            "id": 33,
            "user_id": 1,
            "group_id": null,
            "name": "Doe",
            "phone": "(11) 98686-0505",
            "status": "disable",
            "created_at": "2022-07-09 15:40:58",
            "updated_at": "2022-07-09 15:40:58"
        }
    ]
}

Aviso

Sem a paginação definida, a quantidade máxima retornada será de 50 contatos.

Obtendo Contatos (Paginação)

Recupere os contatos com paginação da seguinte forma:

$zapMeSdk->getContacts(true, 1, 1);

A resposta será um objeto jSON como este:

{
    "status": true,
    "result": "success",
    "date": "2022-08-01 03:00:04",
    "data": [
        {
            "id": 1,
            "hash": "e763e2cc00485335b619",
            "message": "Inventore consequuntur incidunt occaecati dolorem. Nobis numquam voluptas necessitatibus ut deleniti. In aliquid quod iusto ipsam molestiae possimus maxime. Excepturi eveniet qui distinctio nihil quibusdam voluptate.",
            "phone": "9621891589608",
            "type": "api",
            "status": "missing_number",
            "created_at": "2022-08-01 02:12:16",
            "updated_at": "2022-08-01 02:12:16"
        },
    ]
}

Aviso

O primeiro parâmetro do método getContacts será true para indicar que a paginação está ativa. O segundo parâmetro será a página atual e o terceiro parâmetro será a quantidade de contatos por página. Caso não haja mais resultados a serem exibidos o retorno do parâmetro data será vazio.

Obtendo Contato

Recupere um contato da seguinte forma:

$zapMeSdk->getContact(113);

A resposta será um objeto jSON como este:

{
    "status": true,
    "result": "success",
    "date": "2022-07-10 19:34:39",
    "data": {
        "id": 113,
        "name": "Jhon",
        "phone": "(11) 98585-0505",
        "group": {
            "id": 3,
            "name": "Clientes Inativos",
            "color": "#5f76e8",
            "created_at": "2022-07-10 19:18:45",
            "updated_at": "2022-07-10 19:18:45"
        },
        "status": "active",
        "created_at": "2022-07-10 19:21:19",
        "updated_at": "2022-07-10 19:21:19"
    }
}

Aviso

O primeiro parâmetro do método getContact deve ser o ID do contato a ser obtido.

Exclusão de Contato

Exclua um contato da seguinte forma:

$zapMeSdk->destroyContact(113);

A resposta será um objeto jSON como este:

{
    "status": true,
    "result": "success",
    "date": "2022-07-10 20:04:50"
}

Tratamento de Casos de Erros

Ao emitir uma requisição para a API da ZapMe, independente do método utilizado, uma série de validações será aplicada afim de verificar se todos os requisitos necessários atendem as expectativas. Se você perceber que a requisição retornou com o status como false, o result irá conter um identificador do tipo do erro e haverá uma chave chamada: error correspondendo a um array com as descrições sobre o erro:

{
    "status": false,
    "result": "invalid_credential",
    "date": "2022-08-01 01:54:33",
    "error": [
        "credenciais invalidas"
    ]
}

Consulte a guia Tratamento de Erros para mais informações.