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.