본문 바로가기
Programming/C#

TelegramBot Sample 만들기 - 3 ( C#프로젝트와 Bot 연결 )

by Deafhong 2017. 1. 16.
반응형


안녕하세요. 데프홍입니다.


이번 포스팅에서는 C# 프로젝트와 Bot Token 을 이용해서 연결시킨 후,

Bot Name 을 가져오는 간단한 예제,

그리고 Bot 에서 메세지를 치면, 그대로 응답해주는

에코Bot(?) 을 구현해보도록 하겠습니다.


먼저 간단하게 구현순서를 나열하자면

다음 아래와 같습니다.


1. Token 을 이용한 TelegramBotClinet 을 설정.

2. TelegramBotClient 의 이름을 호출.

3. OnMessage 이벤트를 추가.

4. Receiving 을 실행하도록 셋팅.

5. 프로그램 실행

6. Bot 에 메세지 쳐보기.



자. 먼저.. 만들어둔 C# 프로젝트를 열어서 Form1.cs[Design] 의 폼 화면을 더블클릭하여

Form1_Load 함수로 들어갑니다.




다음 아래와 같이 코드를 쳐 주시면 되겠습니다.


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

//Telegram using
using Telegram.Bot;
using Telegram.Bot.Types;
using Telegram.Bot.Types.Enums;
using Telegram.Bot.Types.ReplyMarkups;


namespace telegramAPI_Example
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private Telegram.Bot.TelegramBotClient Bot = new Telegram.Bot.TelegramBotClient("Token 키를 입력");

        private void Form1_Load(object sender, EventArgs e)
        {
            telegramAPIAsync();
        }

        // init methods...
        private async void telegramAPIAsync()
        {
            //Token Key 를 이용하여 봇을 가져온다.
            var Bot = new Telegram.Bot.TelegramBotClient("321296965:AAHroKidfXSq7-UBWW5GVnDLEaROTYikAJs");
            //Bot 에 대한 정보를 가져온다.
            var me = await Bot.GetMeAsync();
            //Bot 의 이름을 출력한다.
            Console.WriteLine("Hello my name is {0}", me.FirstName);
        }
    }
}


저장 후, 실행을 시켜보시면, Bot 이름이 콘솔(Output) 창에 출력이 되신것을 확인 할 수 있습니다.



이제 그 다음으로는 Bot 에 OnMessage 이벤트를 추가해 줘야됩니다.

이벤트를 추가해 주지 않으면, 

사용자가 메세지 친 것들에 대한 응답처리를 할 수가 없으므로..

꼭 추가를 해 주어야겠지요?




        private void Form1_Load(object sender, EventArgs e)
        {
            ...
            setTelegramEvent();      //위에 만든 소스에 이어서 추가해주세요.
        }

        private void setTelegramEvent()
        {
            Bot.OnMessage += Bot_OnMessage;       // 이벤트를 추가해줍니다. 

            Bot.StartReceiving();        // 이 함수가 실행이 되어야 사용자로부터 메세지를 받을 수 있습니다.
        }

        //Events...
        // Telegram...
        private async void Bot_OnMessage(object sender, Telegram.Bot.Args.MessageEventArgs e)
        {
            var message = e.Message;
            if (message == null || message.Type != MessageType.TextMessage) return;

            await Bot.SendTextMessageAsync(message.Chat.Id, message.Text);
        }



자 이걸로 준비는 끝났습니다.


프로젝트를 저장하고, Start 를 시켜주시면

프로그램이 실행되면서 창 하나가 나타날 것입니다.



이후에 텔레그램 봇으로 메세지를 한번 입력해 보세요..

그럼 봇이 입력한 메세지를 도로 출력해주게 된답니다.



Bot_OnMessage 에 여러분들이 원하는 기능을 로직으로 구현하여

나만의 멋진 봇을 만들어 보시기 바랍니다.


그외에 다른 기능들도 많이 있으니 TelegramAPI 로 한번 접속 해 보세요.


그럼 이걸로 포스팅을 마치겠습니다.






반응형