--------------------------------------------------------------------------------
-- CONFIGURAÇÕES DA CAIXA POSTAL
--------------------------------------------------------------------------------
DECLARE 
	@Linha VARCHAR(30) = '5527992052989',
    @Chave VARCHAR(100) = '46j2Lb3nidln5o9kqhYW',
	@AppName VARCHAR(30) = 'Meu Aplicativo 1.0',
	@Porta SMALLINT	= 13006

--------------------------------------------------------------------------------
-- DADOS PARA ENVIO (DESTINATÁRIO)
--------------------------------------------------------------------------------
DECLARE
    @Destinatario VARCHAR(30) = '5527998022075',
    @Mensagem VARCHAR(MAX) = 'Mensagem de teste'


--------------------------------------------------------------------------------
-- PARAMETROS DA FUNÇÃO (INTERNO) - NÃO ALTERAR
--------------------------------------------------------------------------------
DECLARE
    @Usuario VARCHAR(100) = 'user',
    @Senha VARCHAR(100) = 'api',
	@Url VARCHAR(100) = 'http://api.meuaplicativo.vip',
    @obj INT,
    @UrlC VARCHAR(255),
    @resposta VARCHAR(8000),
    @Parametros VARCHAR(4000),
    @Autorizacao VARCHAR(100),
    @source VARBINARY(MAX)


--------------------------------------------------------------------------------
-- Habilitando o OLE Automation (Se não estiver ativado)
--------------------------------------------------------------------------------

DECLARE @Fl_Ole_Automation_Ativado BIT = (SELECT (CASE WHEN CAST([value] AS VARCHAR(MAX)) = '1' THEN 1 ELSE 0 END) FROM sys.configurations WHERE [name] = 'Ole Automation Procedures')
 
IF (@Fl_Ole_Automation_Ativado = 0)
BEGIN

    EXECUTE SP_CONFIGURE 'show advanced options', 1;
    RECONFIGURE WITH OVERRIDE;
    
    EXEC sp_configure 'Ole Automation Procedures', 1;
    RECONFIGURE WITH OVERRIDE;
    
END



--------------------------------------------------------------------------------
-- Realizando a requisição
--------------------------------------------------------------------------------

SET @UrlC = @Url + ':' + convert(VARCHAR(10), @Porta) + '/services/message_send?line=' + @Linha + '&destiny=' + @Destinatario + '&reference&text=' + @Mensagem
SET @Parametros = 'App=' + @AppName + '&AccessKey=' + @Chave

SET @source = CONVERT(VARBINARY(MAX), @Usuario + ':' + @Senha)
SET @Autorizacao = 'Basic ' + CAST('' AS XML).value('xs:base64Binary(sql:variable("@source"))', 'varchar(max)')

EXEC sys.sp_OACreate 'MSXML2.ServerXMLHTTP', @obj OUT
EXEC sys.sp_OAMethod @obj, 'open', NULL, 'POST', @UrlC, 'FALSE'
EXEC sys.sp_OAMethod @obj, 'setRequestHeader', NULL, 'Content-Type', 'application/x-www-form-urlencoded'
EXEC sys.sp_OAMethod @obj, 'setRequestHeader', NULL, 'Authorization', @Autorizacao
EXEC sys.sp_OAMethod @obj, 'send', NULL, @Parametros

EXEC sys.sp_OAGetProperty @obj, 'responseText', @resposta OUT
EXEC sys.sp_OADestroy @obj
    
SELECT @resposta