Enviar SMS a partir do Oracle Database

Sim, é possível enviar sms a partir do Oracle de uma maneira muito simples.

Para isso, vamos utilizar o serviço gratuito do Twilio. Inscreva-se nesse link https://www.twilio.com/try-twilio. Digite os dados necessários.

Depois de criar e confirmar a conta via email, você deve adicionar o seu número de telefone nela. Clique em Phone Numbers e adicione o seu número.

Agora, vamos pegar um número de telefone do Twilio, a conta trial nos dá direito a um único número.

Agora, vamos testar o envio de SMS com esse número do Twilio. Vá em Messaging e depois em send a SMS. Digite os dados e clique em Send test SMS. Você irá receber a mensagem. Do lado direito da tela clique em Show auth token e salve esses código, vamos utilizar isso no Postman.

Vamos enviar um SMS via Postman agora. Faça um post com a seguinte URL https://api.twilio.com/2010-04-01/Accounts/:AccountSid/Messages.json. Em Params digite o seu AccountSid, você consegue pegar na tela anterior aqui em ciam do Twilio.

Em authorization selecione basic e digite o seu username e password, pegamos também no token da tela do Twilio, são separados por “:”.

Em Headers adicione a seguinte entrada:

Agora, digite os dados da mensagem, pra quem quer enviar, seu número do twilio e a mensagem:

Depois de enviar a mensagem via Postman, veja no code Snipset o que ele criou e vamos ver o authorization code.

Esse código vai ser necessário para usar no banco.

Agora, vamos criar uma procedure para enviar SMS:

create or replace procedure send_sms (
      p_to_phone_no   in varchar2
    , p_from_phone_no in varchar2
    , p_msg           in clob  
  )
  is

  g_account_sid        constant varchar2(255) := 'ACCOUNT_SID';
  g_auth_str           constant varchar2(255) := 'Basic ' || 'codigo do postman';
  g_twilio_host        constant varchar2(30)  := 'https://api.twilio.com';
  g_twilio_api_version constant varchar2(20)  := '2010-04-01';

  l_result          clob;
  l_method_url      varchar2(255) := '/'||g_twilio_api_version||'/Accounts/'||g_account_sid||'/Messages.json';
    
BEGIN

    apex_web_service.g_request_headers(1).name  := 'Content-Type';
    apex_web_service.g_request_headers(1).value := 'application/x-www-form-urlencoded';
    apex_web_service.g_request_headers(2).name  := 'Authorization';
    apex_web_service.g_request_headers(2).value := g_auth_str;

    l_result := apex_web_service.make_rest_request (
        p_url         => g_twilio_host||l_method_url
      , p_http_method => 'POST' 
      , p_parm_name   => apex_string.string_to_table('Body:To:From', ':')
      , p_parm_value  => apex_string.string_to_table(p_msg||':'||p_to_phone_no||':'||p_from_phone_no, ':')
    );

END send_sms;

Pronto, super simples enviar SMS pelo Oracle com essa procedure.

Deixe um comentário

Este site utiliza o Akismet para reduzir spam. Saiba como seus dados em comentários são processados.