본문 바로가기

모바일 앱 프로그래밍(안드로이드 IOS통합) c# maui

모바일 앱에서 텔레그램 메세지 보내기 c# Maui

이번장에서 c# maui를 통해 안드로이드 IOS 맥OS 통합으로 된 텔레그램 메세지 보내는 프로그램을 한번에 만들어 보도록 하겠다.

 

c# maui 를 애플의 맥 으로 진행할것인데 구글에서 visual studio for mac 2022 preview 버젼을 검색해서 받으셔도 되고

 

아래 링크로 다운 받아서 설치해도 됩니다.

 

https://visualstudio.microsoft.com/ko/vs/mac/preview/

 

Mac용 Visual Studio 2022 미리 보기

Mac용 Visual Studio에 대한 다음 주요 릴리스 구성에 참가새로운 네이티브 macOS UI를 경험해 보세요.Mac용으로 맞춤 제작된 최신 .NET IDE를 미리 봅니다.

visualstudio.microsoft.com

설치가 완료되고 실행시키시고 

 

다중 플랫폼->c# maui를 선택하시고 만드시면 됩니다.

 

대상 플랫폼은 .net 7.0으로 

프로젝트 명은 임의로 입력하고 만듭니다.

 

다 생성되면 기본 프로젝트가 생성되는데

 

기존 c# wpf 프로그램이 능숙하신 분들은 쉽습니다.

 

xaml 사용법이 거의 동일하기 때문에 원하시는데로 만드실수 있습니다.

 

IOS 해당되는 아이폰 / 아이패드 계열은 개발자 라이센스가 없으시면 임시로 라이센스를 발급해서 사용할수 밖에 없는데. 이게 previeiw 버젼이다 보니 여기서 생성은 안되고 xcode로 임시 라이센스 생성후 가져오셔야 됩니다. 안그러면 휴대폰에 실행하려고 할때 라이센스가 없다고 안됩니다.

 

안드로이드야 그냥 됩니다.

 

그냥 메세지만 보내는거 테스트로 이번에 만들려면 그냥 기본 앱에서 버튼 이벤트 있는거에 코딩하는걸로 가정하겠습니다.

 

nuget패키지에서 텔레그램봇을 설치하고

 

텔레그램 봇 클래스를 하나 만듭니다.  그러기 전에 자기 토큰 번호를 알아야되는데 텔레그램 사이트 접속후 가입/로그인 후

 

https://web.telegram.org/k/

 

Telegram Web

Telegram is a cloud-based mobile and desktop messaging app with a focus on security and speed.

web.telegram.org

 

 

검색창에 BotFather을 검색후  /start => /newbot 을 차례로 전송해 메세지보낼 봇을 생성합니다

그러면 이제 새로운 봇을 생성하는데

 

1. 봇 이름 정하기

 

2. 봇의 사용자 이름 정하기 (꼭 _bot으로 끝나는 이름으로 만들어줘야된다.)

이제 마무리 되면 이제 이런 메시지가 나오면서 토큰을 획득한 것이다.

그 다음 봇에서 전송할 채팅창 ID를 얻어야되는데 이게 봇으로 보내는거보니 두가지 경우 밖에. 보내지 못한다.

 

1. 자기자신 봇 에게 보내기

 

2. 채널에서 관리자에 봇을 추가한 경우 

 

주의 해야 될점은 자기자신 아이디가 아니라 자신의 아이디 봇이다. 다르다 서로!!! @사용자봇이름 << 이런식으로 되어있다.

 

아이디를 얻는 방법은 .

 

1번의 경우 위의 t.me/봇의사용자이름 클릭하면 창이 뜨는데 그거 시작하고 메세지를 보내보고.

 

2번의 경우는 채널 개설이나 참가후  관리자로 봇을 추가한후 메세지를 보낸후

 

브라우저 주소 입력창에 https://api.telegram.org/botToken값/getUpdates

을 입력하면 자신이 보낸 메세지에 해당하는 ID써있는 부분이 chat id이다

 

이 토큰/챗아이디 두개가 확보됐으면 이제 보낼 준비는 끝이다.

 

maui 메인 .cs에서 우선 텔레그램 봇 패키지를 추가해주고.

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

 

버튼 이벤트 하나 추가해서

private void OnClicked(object sender, EventArgs e)
{
	TelegramBot._chatId = "확보한chatID";
	string text = "보낼 메세";
	string errorMessage = null;
	bool ret = TelegramBot.SendMessage(text, out errorMessage);	
}

 

위와 같이 메세지 보내면 끝~!~!

 

엄청 쉽죠?

 

반응형