Envio de Mensagem

Método sendmessage:

<?php

require __DIR__ . '/Src/ZapMeApi.php';

$zapme = new ZapMeApi;

/**
* Antes de qualquer coisa, você deve definir os dados da sua API
* Para isso há três formatos disponíveis, escolha o que você desejar:
* ***************** (SELECIONE APENAS UM MÉTODO!) *******************
*/

/**
* opção 1:
*/
$zapme->setOwner(['api' => 'API_AQUI', 'secret' => 'CHAVE_SECRETA_AQUI']);

/**
* ou... opção 2:
*/
$zapme->setApi('API_AQUI');
$zapme->setSecret('CHAVE_SECRETA_AQUI');

/**
* ou... opção 3:
*/
$zapme->api    = 'API_AQUI';
$zapme->secret = 'CHAVE_SECRETA_AQUI';

/**
* independente do método escolhido acima,
* após configurar os dados da API corretamente
* execute a função $zapme->sendMessage($phone, 'Estou testando a API da ZapMe') em um dos três formatos:
*/

/**
* opção 1:
*
* envio simples - sem documento (img/pdf) anexado
* parâmetros: telefone (COM DDI) e mensagem
* para um único número
*/
$numeros = '5511985850505';

/**
* opção 2:
* você pode transformar a variável $numeros em um array
* para fazer um envio em massa, enviando uma cópia
* de mensagem para todos os numeros do array, exemplo:
*
* $numeros =
* [
*       '5511985850505',
*       '5511985850504',
*       '5511985850503',
* ];
*
* Desta forma uma única mensagem será enviada a vários números
*/

$zapme->sendMessage($numeros, 'Estou testando a API da ZapMe');

/**
* opção 3 (anexando documento):
*
* você pode adicionar um array no terceiro parametro
* definindo dados para envio de um documento (jpg/pdf):
* 'document' => hash base64 do arquivo e 'filetype' = jpg para imagem ou pdf para pdf
*
*       $zapme->sendMessage($numeros, 'Estou testando a API da ZapMe',
*       [
*               'document' => 'iVBORw0KGgoAAAANSUhEUgAAARwAAAEiCAYAAAArhG09AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAODSURBVHhe7dQxEQAwCACx+nfMMVAXP2WIhbyZPYCCcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcICMcIDI3gfjoAeT7EafpgAAAABJRU5ErkJggg==',
*               'filetype' => 'jpg',
*       ]);
*/

/**
* após isso basta imprimir o resultado,
* para isso há também algumas formas:
* *** (SELECIONE APENAS UM MÉTODO!) ***
*/

/**
* opção 1:
* o segundo parâmetro como true retorna o resultado já em var_dump
*/
$zapme->getResult();

/**
* ou... opção 2:
*/
var_dump($zapme->getResult('all', false));

/**
* ou... opção 3:
*
* nesta opção você pode definir qual index da
* resposta você quer imprimir, por exemplo:
*
* (para usar esse método você deve conhecer o que a API retorna)
*/
echo $zapme->getResult('status_result');

Exemplo de Retorno Completo da API:

{
        "result": "success",
        "date": "2020-03-15 11:56:09",
        "status": 200,
        "messageid": 24,
        "status_result": "message_queued",
        "message": "mensagem enviada com sucesso"
}

Explicação dos Parâmetros Obrigatórios da Requisição

  • api (obrigatório)

sua API obtida na ZapMe

  • secret (obrigatório)

sua chave secreta obtida na ZapMe

  • method (obrigatório)

o método utilizado, neste caso: sendmessage

  • phone (obrigatório)

o telefone destinatário

  • message (obrigatório)

o texto da mensagem

  • document (opcional)

hash base64 de um documento a ser anexado ao envio

  • filetype (opcional)

tipo do documento anexado (jpg ou pdf)

Importante

Os parametros document e filetype só devem ser preenchidos caso você tenha interesse em enviar um anexo (jpg ou pdf) ao envio. Caso contrário, ignore-os. Se você pretende enviar um anexo o document deve ser a hash base64 do documento anexado e o filetype deve ser: “jpg” para anexo de imagem ou “pdf” para anexo de pdf.

Anexando Documento ao Envio

Para anexar um arquivo para envio você deve apenas extrair a hash base64 deste arquivo e em seguida anexa-la ao array de dados do terceiro parâmetro da função $zapme->sendMessage();

Você pode extrair a hash base64 do documento usando a função do PHP, veja exemplo:

// 1. aponte o arquivo para uma variável temporária
$arquivo  = 'caminho/até/o/arquivo.jpg';

// 2. extraímos a hash com a função do php
$hash     = base64_encode($arquivo);

// 3. passamos a hash para o array da função:
$zapme->sendMessage('5511985850505', 'Estou testando a API da ZapMe',
[
        'file' => $hash,
        'type' => 'jpg', // jpg porque o documento é imagem, se fosse pdf iriamos usar 'pdf'
]);

// 4. Neste passo, siga com a exibição do resultado da requisição

Você também pode extrair a hash base64 de um arquivo em um site online como o https://base64.guru