Enviando SMS com PHP




Nesse vídeo vou mostrar como faz para enviar um SMS com php, para isso iremos usar um API da directCall, nós vamos nos comunicar com ela para poder envia o SMS para quem e com a mensagem que quisermos.

index.php

<?php
   require 'sms/Sms.php';
   if(isset($_POST['sms'])){
      $sms = new Sms();
      $sms->setTelefoneOrigem('5516992467199');
      $sms->setTelefoneDestino('5516'.$_POST['sms_telefone_destino']);
      $sms->setTipo('texto');
      $sms->setMensagem($_POST['sms_mensagem']);
      $sms->setToken('abe56fe6c5a3f6cef3edca1cbb284a2e045d0d26');
      $sms->setFormato('JSON');

      try{
         $smsEnviado = ($sms->statusSms()) ? 'SMS enviado com sucesso !!' : 'Erro ao enviar SMS';
      }catch(Exception $e){
         echo $e->getMessage();
      }
   }

?>
<!DOCTYPE html>
<html>
<head>
   <title>Enviar SMS</title>
   <!-- chamada do semantic ui -->
   <link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/semantic-ui/2.1.6/semantic.css">
</head>
<body>
   <div class="ui two column centered grid" style="margin-top: 10px;">
      <div class="ui compact segment">

      <?php echo isset($smsEnviado) ? $smsEnviado : ''; ?>

         <h2>Enviar SMS com PHP</h2>
         <div class="ui divider"></div>

         <!-- inicio do formulario -->
         <form class="ui form" method="post" action="">

            <input type="hidden" name="sms">
            <!-- telefone destino -->
              <div class="field">
                <label>Telefone Destino</label>
                <input type="text" name="sms_telefone_destino" placeholder="Telefone destino">
              </div>

            <!-- mensagem -->
              <div class="field">
                <label>Mensagem</label>
                <textarea name="sms_mensagem" placeholder="Mensagem para o destino"></textarea>
              </div>

            <!-- botao enviar mensagem -->
              <button class="ui green button" type="submit">Enviar Mensagem</button>

            <!-- final do formulario -->
         </form>
      </div>
   </div>
</body>
</html>

Sms.php

class Sms{

   private $telefoneOrigem;
   private $telefoneDestino;
   private $tipo;
   private $mensagem;
   private $formato;
   private $token;
   private $url = 'https://api.directcallsoft.com/sms/send';

    public function setTelefoneOrigem($telefoneOrigem)
    {
        $this->telefoneOrigem = $telefoneOrigem;

        return $this;
    }

    public function setTelefoneDestino($telefoneDestino)
    {
        $this->telefoneDestino = $telefoneDestino;

        return $this;
    }

    public function setTipo($tipo)
    {
        $this->tipo = $tipo;

        return $this;
    }

    public function setMensagem($mensagem)
    {
        $this->mensagem = $mensagem;

        return $this;
    }

    public function setFormato($formato)
    {
        $this->formato = $formato;

        return $this;
    }

    public function setToken($token)
    {
        $this->token = $token;

        return $this;
    }

    private function enviarSms(){
      if($this->formato != 'JSON'){
         throw new Exception("O formato do SMS enviado deve ser um JSON");
      }
      $data = http_build_query(array('origem'=>$this->telefoneOrigem, 'destino'=>$this->telefoneDestino, 'tipo'=>$this->tipo, 'access_token'=>$this->token, 'texto'=>$this->mensagem));

      $ch = curl_init();
      curl_setopt($ch, CURLOPT_URL, $this->url);
      curl_setopt($ch, CURLOPT_POST, true);
      curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
      curl_setopt($ch, CURLOPT_HEADER, 0);
      curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

      $return = curl_exec($ch);

      curl_close($ch);

      // Converte os dados de JSON para ARRAY
      return json_decode($return, true);

    }

    public function statusSms(){
      if($this->enviarSms()['status'] == 'ok'){
         return true;
      }
      return false;
    }
}