отправить смс с использованием sql server 2012 - PullRequest
0 голосов
/ 25 апреля 2018

Я пытаюсь отправить SMS с помощью веб-API с сервера SQL. У меня ошибка в sp_OAMethod. Ниже написано код для того же

DECLARE @iReq int,@hr int 
DECLARE @sUrl as varchar(500) 
DECLARE @errorSource VARCHAR(8000) 
DECLARE @errorDescription VARCHAR(8000) 

-- Create Object for XMLHTTP
EXEC @hr = sp_OACreate 'Microsoft.XMLHTTP', @iReq OUT 
PRINT @hr

IF @hr <> 0 
BEGIN

Raiserror('sp_OACreate Microsoft.XMLHTTP FAILED!', 16, 1)


SET @sUrl='http://alerts.ebensms.com/api/v3/?method=sms&api_key=******&to=#MobNo#&sender=XXXX&message=#Msg#'
SET @sUrl=REPLACE(@sUrl,'#MobNo#','0000000000') 
SET @sUrl=REPLACE(@sUrl,'#Msg#','Thanks') 
SELECT @sUrl 

---- sms code start

EXEC @hr = sp_OAMethod @iReq, 'Open', NULL, 'GET', @sUrl,true
PRINT @hr 
END

IF @hr <> 0 
Raiserror('sp_OAMethod Open FAILED!', 16, 1) 

EXEC @hr = sp_OAMethod @iReq, 'send' 
SELECT @iReq 
PRINT 'open failed'

IF @hr <> 0 
  BEGIN
EXEC sp_OAGetErrorInfo @iReq, @errorSource OUTPUT, @errorDescription OUTPUT 
SELECT [Error Source] = @errorSource, 
[Description] = @errorDescription Raiserror('sp_OAMethod Send FAILED!', 16, 1) 
  END

ELSE
BEGIN
EXEC @hr = sp_OAGetProperty @iReq,'responseText'
PRINT @hr 
INSERT INTO tblUnCandidateSendSMSLog (Id,mobile,sendtext,created) values  (12,'0000000000','send','AAAAAAA-B23C80FD16D4')
END


EXEC sp_OAGetErrorInfo

Ответы [ 2 ]

0 голосов
/ 24 июня 2019

Я попробовал этот подход, но он не работает на меня.

Тот же код,

Изменено это

sp_OAMethod @iReq, 'Open', NULL, 'GET', @sUrl,true

к этому

sp_OAMethod @iReq, 'Open', NULL, 'POST', @sUrl,false

и это

sp_OACreate 'Microsoft.XMLHTTP', @iReq OUT

к этому

sp_OACreate 'MSXML2.XMLHTTP', @iReq OUT;

0 голосов
/ 26 апреля 2018

Ошибка относилась к

sp_OAMethod @iReq, 'Open', NULL, 'GET', @sUrl,true 

, где в ней говорилось, что отправка не удалась.

Теперь проблема решена с помощью

sp_OAMethod @iReq, 'Open', NULL, 'POST', @sUrl,false 

и изменением

sp_OACreate 'Microsoft.XMLHTTP', @iReq OUT  

на

sp_OACreate 'MSXML2.XMLHTTP', @iReq OUT;
...