반응형
누겟의 텔레그램 봇은 프레임워크 4.6 이상의 버전을 지원하여, 하위 버전에서는 사용이 불가하여
라이브러리 없이 프로그램 코드로 전송하는 방법을 알고자 프로그램 테스트를 진행 하였습니다.
▼ 텔레그램 설정은 아래의 페이지를 참고 바랍니다.
2021.12.24 - [파이썬/파이썬] - [ 파이썬 ] 텔레그램 봇 만들기
앞서 제작한 텔레그램 봇에서 생성된 값을 기준으로 사용될 Http token는 아래와 같습니다.
- Http token : 5011935411:AAH_HFzc0AzWCANf0ZkRwc72MfEyy0aBBRo
- 채팅 아이디 : getUpdates를 이용하여 받을 예정임
텔레그램 API 둘러보기
1. 메시지 내용 보기(getUpdates)
https://api.telegram.org/bot<Httptoken>/getUpdates
https://api.telegram.org/bot5011935411:AAH_HFzc0AzWCANf0ZkRwc72MfEyy0aBBRo/getUpdates
{
"ok":true,
"result":[{"update_id":XXXXXX,
"message":{"message_id":3,
"from":{"id":XXXXXX,"is_bot":false,"first_name":"M","language_code":"ko"},
"chat":{"id":XXXXXX,"first_name":"M","type":"private"},"date":1641394436,"text":"test"}
}]
}
2. 메시지 보내기(SendMessage)
https://api.telegram.org/bot <Http token>/sendMessage? chat_id=<chat_id>&text=<메시지>
https://api.telegram.org/bot5011935411:AAH_HFzc0AzWCANf0ZkRwc72MfEyy0aBBRo/sendMessage?chat_id=5093954586&text=테스트
{"ok":true,
"result":
{"message_id":74,
"from":{
"id":5011935411,"is_bot":true,
"first_name":"test_bot",
"username":"test_1112222233334455_bot"},
"chat":{
"id":5093954586,
"first_name":"M","type":"private"},
"date":1641304100,
"text":"\ud14c\uc2a4\ud2b8"}}
C#코드로 전송하기
getUpdates로 chatID를 조회 한 후 SendMessage 로 메시지를 전송하는 클래스를 제작 하였습니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
|
public class telegramBot
{
public string token="";
public string chat_id = "";
// 1. 초기화 /////////////////////////////////////////////////////////////
public telegramBot()
{
//"요청이 중단되었습니다. SSL/TLS 보안 채널을 만들 수 없습니다." 오류 방지
ServicePointManager.SecurityProtocol = (SecurityProtocolType)768 | (SecurityProtocolType)3072;
}
// 2. 채팅 ID 받아오기 /////////////////////////////////////////////////////////////
public bool getUpdates()
{
chat_id = "";
string url = string.Format(@"https://api.telegram.org/bot{0}/getUpdates", token);
WebClient weblient = new WebClient();
try
{
string result = weblient.DownloadString(url);
if (result.IndexOf("\"ok\":true") > 0)
{
var JsonReult = JObject.Parse(result);
// 마지막 메시지에서 채팅아이디를 받음 chat_id = JsonReult["result"].Last["message"]["chat"]["id"].ToString();
return true;
}
else
{
MessageBox.Show(result);
}
}
catch (Exception ex) { MessageBox.Show(ex.Message); }
return false;
}
// 3. 메시지 전송 ///////////////////////////////////////////////////////////////////////
public bool SendMessage(string text)
{
string url = string.Format(@"https://api.telegram.org/bot{0}/sendMessage?chat_id={1}&text={2}", token, chat_id, text);
WebClient weblient = new WebClient();
try
{
string result = weblient.DownloadString(url);
if (result.IndexOf("\"ok\":true") > 0)
{
return true;
}
else
{
MessageBox.Show(result);
}
}
catch (Exception ex) { MessageBox.Show(ex.Message); }
return false;
}
}
|
cs |
|
|
▼ 참고용 제작 프로그램 입니다.(VS2008, Newtonsoft.Json.Net20.dll 라이브러리 사용)
token 및 text를 입력하면 텔레그램으로 메시지를 발송합니다.
▼ 소스 코드
반응형
'프로그래밍 > C Sharp' 카테고리의 다른 글
[WPF] 프레임에서 페이지 전환 하기 (0) | 2022.01.13 |
---|---|
[ C# ] DataTable CSV 읽고 쓰기 (0) | 2022.01.13 |
[ C# ] LS 산전 PLC 이더넷 통신하기-응답 데이터 분석 (3) | 2021.12.07 |
[ C# ] LS 산전 PLC 이더넷 통신 - 개별 쓰기 (2) | 2021.12.07 |
[ C# ] LS 산전 PLC 이더넷 통신하기 - 연속 읽기 (0) | 2021.12.07 |
댓글