본문 바로가기

Program/DB

SQL Server에서 텔레그램(Telegram) API 호출

텔레그램 봇이 먼저 동작하고 있어야 합니다.

DECLARE @obj int 
,   @response nvarchar(4000) 
, @url VARCHAR(MAX) = 'https://api.telegram.org/bot' 
, @bot_id VARCHAR(MAX) = '텔레그램 bot id' 
, @chat_id VARCHAR(MAX) = '텔레그램 chat id' 

SET @url = @url + @bot_id + '/sendmessage?chat_id=' + @chat_id + '&text=' 

DECLARE @M VARCHAR(MAX) = '' 
, @L INT = 0 
, @I INT = 1 
, @C VARCHAR(MAX) = ''



SET @M = CONVERT(VARCHAR(MAX), master.dbo.ToUTF8(N'보낼메시지'), 2); -- https://irisgnu.tistory.com/52
SET @L = LEN(@M) 

WHILE (@I <= @L) 
BEGIN 
SET @C += '%' + SUBSTRING(@M, @I, 2) 
SET @I += 2 
END 

SET @url = @url + @C 

exec sp_OACreate 'MSXML2.XMLHTTP.3.0', @obj out; 
exec sp_OAMethod @obj, 'open', NULL, 'get', 
 @url, 
 'false' 
exec sp_OAMethod @obj, 'send' 
exec sp_OAMethod @obj, 'responseText', @response output 

select @response 

exec sp_OADestroy @obj