sgcWebSockets 4.4.2부터 iOS64 기기에서 Telegram이 지원돼요. 즉, 자신만의 Telegram 클라이언트를 만들 수 있어요. TDLib가 모든 네트워크 구현 세부 사항, 암호화, 로컬 데이터 저장을 처리해요. TDLib는 모든 Telegram 기능을 지원해요.
TDLib(Telegram Database Library) 장점
- 크로스 플랫폼: Windows, Android, iOS, MacOS, Linux 등에서 사용할 수 있어요. 현재 sgcWebSockets에서는 Windows(win32 및 win64)만 지원해요.
- 사용 편의성: 애플리케이션과 Telegram 간 통신에 JSON 메시지를 사용해요.
- 고성능: Telegram Bot API에서 각 TDLib 인스턴스는 24,000개 이상의 봇을 처리해요.
- 일관성: TDLib는 모든 업데이트가 올바른 순서로 전달될 것을 보장해요.
- 신뢰성: TDLib는 느리고 불안정한 인터넷 연결에서도 안정적으로 동작해요.
- 보안: 모든 로컬 데이터는 사용자 제공 암호화 키로 암호화돼요.
- 완전 비동기: TDLib에 대한 요청은 서로를 차단하지 않아요. 응답은 사용 가능할 때 전송돼요.
설정
라이브러리 libtdjson.a를 다음 디렉터리에 복사하세요:
- C:\Program Files (x86)\Embarcadero\Studio\<IDE Version>\lib\iosDevice64\debug
- C:\Program Files (x86)\Embarcadero\Studio\<IDE Version>\lib\iosDevice64\release
<IDE Version>은 Rad Studio 버전을 식별하는 번호예요(예: Rad Studio 10.4는 21.0).
Telegram 앱 만들기
Telegram API를 사용해 자신만의 애플리케이션을 개발하고 API id를 얻으려면 다음 절차를 따르세요:
- 아무 애플리케이션으로나 Telegram에 가입하세요.
- Telegram 코어에 로그인하세요: 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에 연결을 시도해요.
iOS 샘플 코드
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 := 'iOS';
oTelegram.Active := true;
procedure OnAuthenticationCode(Sender: TObject; var Code: string);
begin
InputBox('Telegram', 'Introduce Telegram Code', '');
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;


iOS Telegram 클라이언트 스크린샷
