Material Bônus
Preparamos um material bônus com algumas dicas para manipulação do pacote SDK PHP.
Método Auxiliar de Credenciais de Uso
O pacote SDK PHP oferece um método auxiliar para definição das credenciais de uso.
Mais Utilizado
Método mais utilizado para definição das credenciais:
<?php
require 'vendor/autoload.php';
use ZapMeSdk\Base as ZapMeSdk;
$zapMeSdk = (new ZapMeSdk())
->withApi('SUA_API_AQUI')
->withSecret('SUA_CHAVE_SECRETA_AQUI');
Método Alternativo
Método alternativo para definição das credenciais:
<?php
require 'vendor/autoload.php';
use ZapMeSdk\Base as ZapMeSdk;
$zapMeSdk = (new ZapMeSdk())
->withCredentials([
'api' => 'SUA_API_AQUI',
'secret' => 'SUA_CHAVE_SECRETA_AQUI'
]);
Alterando Destino das Requisições
Se por alguma razão você for instruído pelo suporte da ZapMe a enviar as requisições para uma URL de API diferente, use o método toUrl
:
<?php
require 'vendor/autoload.php';
use ZapMeSdk\Base as ZapMeSdk;
$zapMeSdk = (new ZapMeSdk())
->toUrl('https://exemplo.zapme.com.br')
->withApi('SUA_API_AQUI')
->withSecret('SUA_CHAVE_SECRETA_AQUI');
Framework Laravel
No Laravel uma dica valiosa é atribuir a responsabilidade do pacote SDK PHP a pequenas classes de ações:
<?php
namespace App/Actions/ZapMe;
use ZapMeSdk\Base as ZapMeSdk;
class SendMessage
{
private ZapMeSdk $zapMeSdk;
public function __construct()
{
$this->zapMeSdk = (new ZapMeSdk())
->withApi(config('services.zapme.api'))
->withSecret(config('services.zapme.secret'));
}
public function __invoke(string $phone, string $message, array $attachment = [])
{
return $this->zapMeSdk->sendMessage($phone, $message, $attachment);
}
}
Feito isso, basta utilizar a classe como uma classe invocável onde quiser:
$response = (new \App\Actions\ZapMe\SendMessage())('5511985080505', 'Teste via Laravel!');
Dica
Em um futuro próximo nossos desenvolvedores irão criar um pacote específico para o framework Laravel.
PHP Orientado a Objetos
Se o projeto em que você está incluíndo o pacote SDK PHP for orientado à objetos, então você pode instanciar a classe do SDK em um método construtor e assim ter a instância do objeto disponível em toda classe para fazer o que quiser, veja exemplo abaixo:
class Invoice
{
private ZapMeSdk $zapMeSdk;
public function __construct()
{
$this->zapMeSdk = (new ZapMeSdk())
->withApi('SUA_API_AQUI')
->withSecret('SUA_CHAVE_SECRETA_AQUI');
}
// ...
public function createUserInvoice()
{
$this->zapMeSdk->sendMessage('5511985850505', 'Olá! Aqui está a sua fatura.');
}
}