sgcWebSockets 4.4.1부터 Android 기기용 Telegram을 지원해요. 즉, 직접 Telegram 클라이언트를 만들 수 있어요. TDLib는 모든 네트워크 구현 세부 사항, 암호화, 로컬 데이터 저장을 처리해요. TDLib는 모든 Telegram 기능을 지원해요.
TDLib(Telegram Database Library)의 장점
- 크로스플랫폼: Windows, Android, iOS, MacOS, Linux에서 사용할 수 있어요. 현재 sgcWebSockets에서는 Windows(win32, win64)만 지원해요.
- 사용하기 쉬워요: JSON 메시지를 사용해 애플리케이션과 Telegram 간에 통신해요.
- 고성능: Telegram Bot API에서 각 TDLib 인스턴스는 24,000개 이상의 봇을 처리해요.
- 일관성: TDLib는 모든 업데이트가 올바른 순서로 전달됨을 보장해요.
- 신뢰성: TDLib는 느리고 불안정한 인터넷 연결에서도 안정적이에요.
- 보안: 모든 로컬 데이터는 사용자가 제공한 암호화 키로 암호화돼요.
- 완전 비동기: TDLib에 대한 요청은 서로를 차단하지 않아요. 응답은 사용 가능할 때 전송돼요.
설정
기기에 libtdjsonandroid.so 라이브러리를 배포하고, Android 버전에 따라 Remote Path를 설정하세요.
Android 32: Remote Path를 library\lib\armeabi-v7a\로 설정하세요.
Android 64: Remote Path를 library\lib\arm64-v8a\로 설정하세요.
Telegram 만들기
API ID를 얻고 Telegram API를 사용해 직접 애플리케이션을 개발하려면 다음을 수행해야 해요.
- 아무 애플리케이션이나 사용해 Telegram에 가입하세요.
- Telegram core에 로그인하세요: https://my.telegram.org.
- API development tools로 이동해 양식을 작성하세요.
- 기본 주소와 함께 사용자 권한 부여에 필요한 api_id와 api_hash 매개변수를 받아요.
- 현재 각 번호는 하나의 api_id에만 연결할 수 있어요.
이 값들은 Telegram 컴포넌트의 Telegram.API 속성에 설정해야 해요. 인증하려면 (국제 번호 포함) 전화번호를 설정해야 해요. 예: 34699123456
다음 매개변수를 설정할 수 있어요.
- ApplicationVersion: 애플리케이션 버전, 예: 1.0
- DeviceModel: 기기 모델, 예: desktop
- LanguageCode: 사용자 언어 코드, 예: en.
- SystemVersion: 운영 체제 버전, 예: windows.
Telegram 컴포넌트를 설정하면 Active 속성을 true로 설정할 수 있고, 프로그램이 Telegram에 연결을 시도해요.
Android 샘플 코드
oTelegram := TsgcTDLib_Telegram.Create(nil);
oTelegram.Telegram.API.ApiHash := 'your api hash';
oTelegram.Telegram.API.ApiId := 'your api id';
oTelegram.PhoneNumber := 'your phone number';
oTelegram.ApplicationVersion := '1.0';
oTelegram.DeviceModel := 'Desktop';
oTelegram.LanguageCode := 'en';
oTelegram.SystemVersion := 'Android';
oTelegram.Active := true;
procedure OnAuthenticationCode(Sender: TObject; var Code: string);
begin
InputBox('Telegram', 'Introduce Telegram Code', '',
procedure(const AResult: TModalResult; const AValue: string)
begin
sgcTelegram.SetAuthenticationCode(AValue);
end
);
end;
procedure OnMessageText(Sender: TObject; MessageText: TsgcTelegramMessageText);
begin
Log('Message Received: ' + MessageText.Text);
end;
procedure OnConnectionStatus(Sender: TObject; const Status: string);
begin
if Status = 'connectionStateReady' then
oTelegram.SendTextMessage('1234', 'Hello Telegram!');
end;


Android Telegram 클라이언트 스크린샷
