sgcSocial 기능 매트릭스
sgcSocial이 제공하는 모든 기능을, 두 클라이언트 컴포넌트와 각각이 구현하는 API를 기준으로 정리했습니다. 모든 기능이 Delphi와 C++ Builder에서 동일하게 동작하며, 모든 라이선스에 전체 소스 코드가 제공됩니다. 컴포넌트를 클릭하면 사용법과 예제가 담긴 전용 페이지로 이동합니다.
sgcSocial이 제공하는 모든 기능을, 두 클라이언트 컴포넌트와 각각이 구현하는 API를 기준으로 정리했습니다. 모든 기능이 Delphi와 C++ Builder에서 동일하게 동작하며, 모든 라이선스에 전체 소스 코드가 제공됩니다. 컴포넌트를 클릭하면 사용법과 예제가 담긴 전용 페이지로 이동합니다.
sgcSocial은 자체 완결형 제품입니다. sgcWebSockets Core 런타임이 함께 포함되어 제공되므로 애드온이 아닙니다.
sgcWebSockets 안에도 포함되어 있습니다. Telegram 클라이언트는 sgcWebSockets Standard 에디션부터, WhatsApp 클라이언트는 Professional 에디션부터 함께 제공됩니다. All-Access에는 모든 것이 포함됩니다. sgcSocial은 메시징 클라이언트만 필요한 팀을 위한 단독 패키지입니다.
SGC Social 팔레트 페이지에 등록되는 두 메시징 네트워크입니다.
| 컴포넌트 | 클래스 | 네트워크 | 설명 |
|---|---|---|---|
| Telegram 클라이언트 | TsgcTDLib_Telegram | Telegram | 공식 TDLib 기반의 완전한 Telegram 클라이언트입니다. 사용자 계정과 봇, 채팅과 그룹, 미디어, 인라인 키보드, 결제, 프록시를 지원합니다. |
| WhatsApp 클라이언트 | TsgcWhatsApp_Client | WhatsApp Business Cloud API 클라이언트입니다. 텍스트, 미디어, 템플릿, 인터랙티브 메시지를 지원하며, 수신 이벤트를 위한 내장 웹훅 서버도 포함합니다. |
TsgcTDLib_Telegram은 공식 TDLib(Telegram Database Library) 위에 구축되어 있어, 사용자 계정이나 봇으로 로그인하고 Telegram의 전체 기능 세트에 접근할 수 있습니다.
| 기능 | API | 비고 |
|---|---|---|
| 사용자로 로그인 | Telegram.PhoneNumber | 전화번호 인증입니다. OnAuthenticationCode가 로그인 코드를 요청하고, OnAuthenticationPassword가 2FA 비밀번호를 처리하며, OnRegisterUser가 신규 계정을 처리합니다. |
| 봇으로 로그인 | Telegram.BotToken | 동일한 컴포넌트가 TDLib를 통해 봇 계정을 구동하며, Bot API의 일부 기능이 아닌 전체 클라이언트 기능을 사용할 수 있습니다. |
| API 자격 증명 | Telegram.API.ApiId, Telegram.API.ApiHash | my.telegram.org에서 애플리케이션용으로 발급받습니다. |
| 연결 상태 | OnConnectionStatus, OnAuthorizationStatus | authorizationStateReady와 같은 원시 TDLib 상태 문자열입니다. |
| 텍스트 전송 | SendTextMessage, SendRichTextMessage | 모든 채팅 id로 일반 텍스트와 리치 텍스트를 전송합니다. |
| 미디어 전송 | SendDocumentMessage, SendPhotoMessage, SendVideoMessage | 파일, 사진, 동영상을 전송하며, 그룹 미디어에는 SendMessageAlbum을 사용합니다. |
| 결제 | SendInvoiceMessage, AnswerPreCheckoutQuery, SendPaymentForm | Telegram 결제 흐름을 처음부터 끝까지 처리합니다. |
| 수정 및 관리 | EditTextMessage, DeleteMessages, ForwardMessages, PinChatMessage | 전송 이후의 메시지 생애 주기를 관리합니다. |
| 채팅과 그룹 | CreatePrivateChat, CreateNewBasicGroupChat, CreateNewSupergroupChat, JoinChat, JoinChatByInviteLink | 대화를 프로그래밍 방식으로 생성하고 참여합니다. |
| 비밀 채팅 | CreateNewSecretChat | TDLib가 종단 간 암호화 방식인 Telegram 비밀 채팅을 처리합니다. |
| 검색 | SearchChats, SearchMessages, SearchContacts, SearchPublicChats | 채팅, 메시지, 연락처, 공개 채널 전체를 검색합니다. |
| 파일 | DownloadFile | TDLib가 id로 참조하는 모든 파일을 다운로드합니다. |
| 인라인 키보드 | AnswerCallbackQuery, OnNewCallbackQuery | 전송하는 메시지에 첨부하는 콜백 버튼과 URL 버튼입니다. |
| 답장 키보드 | 전송 메서드의 키보드 마크업 | 텍스트 버튼, 위치 요청 버튼, 전화번호 요청 버튼입니다. |
| 인라인 쿼리 | AnswerInlineQuery | 봇으로 전달되는 인라인 쿼리에 응답합니다. |
| 메시지 이벤트 | OnMessageText, OnMessageDocument, OnMessagePhoto, OnMessageVideo | 타입이 지정된 수신 메시지이며, OnMessageSponsored와 OnNewChat도 포함됩니다. |
| 원시 이스케이프 해치 | SendCustomRequest, OnEvent | 모든 TDLib JSON 요청을 전송하고 모든 원시 업데이트를 관찰할 수 있습니다. |
| 프록시 | HTTP, SOCKS5, MTProto | TDLib 연결을 프록시를 통해 라우팅합니다. |
TsgcWhatsApp_Client는 일반 HTTPS로 Meta Graph API와 통신하므로 배포할 네이티브 라이브러리가 없고 모든 Delphi 플랫폼이 지원됩니다.
| 기능 | API | 비고 |
|---|---|---|
| Cloud API 설정 | WhatsAppOptions.PhoneNumberId, WhatsAppOptions.Token | Meta 애플리케이션에서 얻는 두 값입니다. 모든 호출은 Graph API에 대한 일반 HTTPS 요청입니다. |
| 텍스트 | SendMessageText | 모든 WhatsApp 번호로 텍스트를 전송합니다. |
| 공개 링크 미디어 | SendMessageImage, SendMessageDocument, SendMessageAudio, SendMessageVideo, SendMessageSticker | 미디어가 공개 URL에 있는 경우입니다. |
| 로컬 파일 미디어 | SendFileImage, SendFileDocument, SendFileAudio, SendFileVideo, SendFileSticker | 컴포넌트가 로컬 파일을 먼저 업로드한 다음 전송합니다. |
| 리액션 | SendMessageReaction | 수신한 메시지 id에 이모지로 반응합니다. |
| 위치와 연락처 | SendMessageLocation, SendMessageContact | 이름과 주소가 있는 좌표, 그리고 연락처 카드입니다. |
| 인터랙티브 메시지 | SendMessageInteractiveList, SendMessageInteractiveButtons | 선택 목록과 답장 버튼입니다. |
| 템플릿 | SendMessageTemplate | 템플릿 이름, 언어 코드, 매개변수입니다. |
| 미디어 관리 | UploadMedia, DownloadMedia, DeleteMedia | Cloud API 미디어 저장소를 직접 다룹니다. |
| 읽음 확인 | MarkMessageRead | 수신 메시지를 읽음으로 표시합니다. |
| 발신 훅 | OnBeforeSendMessage | 전송되기 전에 메시지를 검사합니다. |
| TLS와 로깅 | TLSOptions, 파일 로깅 | HTTPS 호출을 위한 TLS 설정과 트래픽의 파일 로그입니다. |
WhatsApp은 수신 트래픽을 웹훅으로 푸시하며, 이 웹훅은 컴포넌트가 대신 호스팅합니다. Telegram은 웹훅이 전혀 필요 없습니다. TDLib가 자체 연결을 유지하며 이벤트를 발생시킵니다.
| 영역 | 내용 |
|---|---|
| WhatsApp 웹훅 엔드포인트 | StartServer와 StopServer가 자체 프로세스 안에서 Meta 웹훅을 호스팅하며, ServerOptions를 통해 IP, 포트, SSL 인증서, 엔드포인트 경로, 검증 토큰을 설정합니다. |
| 웹훅 검증 | OnBeforeSubscribe가 Meta의 검증 요청 시 발생하여, 엔드포인트가 구독 핸드셰이크에 응답합니다. |
| 수신 WhatsApp 메시지 | OnMessageReceived가 각 수신 메시지를 전달하며, var aMarkAsRead 인자로 읽음 확인을 전송할 수 있습니다. |
| 전송 상태 | OnMessageSent가 전송한 메시지의 상태를 알려 줍니다. |
| 원시 페이로드 | OnRawMessage가 Meta가 게시한 그대로의 웹훅 JSON을 노출합니다. |
| Telegram 업데이트 | 웹훅이 필요 없습니다. TDLib가 Telegram과의 자체 연결을 유지하며, 새 메시지는 OnMessageText, OnMessageDocument, OnMessagePhoto, OnMessageVideo 이벤트로 도착합니다. |
| 기타 Telegram 이벤트 | OnNewChat, OnNewCallbackQuery, OnMessageSponsored가 새 채팅, 키보드 콜백, 스폰서 메시지를 처리합니다. |
| 원시 Telegram 이벤트 | OnEvent가 모든 TDLib 업데이트를 원시 JSON으로 전달합니다. |
공식 API를, 지원하는 모든 컴파일러에서 동일한 소스로 사용합니다.
| 영역 | 내용 |
|---|---|
| Telegram | 공식 TDLib(Telegram Database Library)로, Telegram 자체 클라이언트 라이브러리입니다. |
| Meta Graph API의 일부인 WhatsApp Business Cloud API를 HTTPS로 사용합니다. | |
| Telegram 플랫폼 | 네이티브 TDLib 라이브러리를 통해: Windows, macOS, Linux 64비트, Android, iOS. |
| WhatsApp 플랫폼 | 순수 HTTPS이므로 모든 Delphi 플랫폼이 지원됩니다. |
| 컴파일러 | Delphi와 C++ Builder 7부터 13까지. |
| 에디션 | Telegram 클라이언트는 sgcWebSockets Standard 에디션부터, WhatsApp 클라이언트는 Professional 에디션부터 함께 제공되며, All-Access에는 모든 것이 포함됩니다. |
| 라이선스 | 단독 제품입니다. sgcWebSockets Core 런타임이 함께 포함되며 전체 소스 코드가 제공됩니다. |