결론부터
- 1my.telegram.org 에 전화번호로 로그인 — 코드는 텔레그램 앱으로 온다.
- 2API development tools 에서 받는다 — 전화번호 하나에 한 쌍.
- 3값은 비밀번호처럼 — 코드 저장소·남의 프로그램에 넣지 않는다.
api_id·api_hash 는 무엇인가
텔레그램 API 나 TDLib 으로 사람 계정 앱을 만들려면 api_id(숫자)와 api_hash(긴 문자열) 한 쌍이 필요합니다. 내 앱이 어떤 앱인지 텔레그램 서버에 밝히는 이름표입니다. 봇만 만든다면 필요 없습니다 — 봇은 @BotFather 의 토큰 하나로 됩니다(API 4가지 고르기).
| 항목 | 내용 |
|---|---|
| 받는 곳 | my.telegram.org 의 API development tools |
| 필요한 것 | 텔레그램에 가입한 전화번호와, 그 계정이 로그인된 텔레그램 앱 |
| 개수 | 전화번호 하나에 api_id 하나 |
| 값 | api_id 는 숫자, api_hash 는 영문·숫자로 된 긴 문자열 |
받는 순서
- PC 브라우저로 my.telegram.org 에 들어가 가입한 전화번호를 국제 형식으로 적습니다. 한국 번호는 +82 뒤에 맨 앞 0 을 빼고 씁니다.
- 가입한 전화번호를 국제 형식(+82 로 시작, 맨 앞 0 빼고)으로
- Next — 확인 코드가 문자가 아니라 텔레그램 앱으로 온다
- Next 를 누르면 확인 코드가 문자가 아니라 텔레그램 앱으로 옵니다(화면 문구). 휴대폰이나 PC 의 텔레그램에서 파란 인증 표시가 붙은 Telegram 공식 알림 대화를 열면 영문·숫자가 섞인 코드가 와 있습니다.
- 확인 코드 — my.telegram.org 의 Confirmation code 칸에 적는다
- 이 코드로 계정 삭제까지 할 수 있다 — 누가 물어도 알려 주지 않는다
확인 코드는 예시 값으로 가렸습니다.
이 코드는 앱 로그인 코드와 달리 계정 삭제까지 할 수 있는 코드입니다. 메시지에 적힌 대로 텔레그램 직원이라고 하는 사람이 물어도 알려 주지 않고, 내가 요청하지 않았는데 왔다면 무시합니다.
- 코드를 적고 Sign In 을 누릅니다. 공용 PC 라면 Remember Me 는 켜지 않습니다.
- 텔레그램 앱의 공식 알림 대화로 온 확인 코드
- Sign In — 공용 PC 라면 Remember Me 는 켜지 않는다
전화번호는 예시 번호로 가렸습니다.
- 로그인한 첫 화면(Your Telegram Core)에서 API development tools 를 엽니다. 바로 아래 Delete account 는 계정 삭제이니 누르지 않습니다.
- API development tools — api_id·api_hash 를 받고 보는 곳
- Delete account — 계정 삭제. 누르지 않는다
- 처음이면 앱 정보를 적는 양식이 나옵니다. 앱 이름(App title)과 짧은 이름(Short name, 영문·숫자 5~32자)을 채워 보내면 api_id 와 api_hash 가 생깁니다. 이미 만든 적이 있으면 양식 대신 아래처럼 그 앱의 App configuration 화면이 바로 열립니다.
- api_id · api_hash — 비밀번호처럼 지킨다
- 앱 이름과 짧은 이름 — 짧은 이름은 영문·숫자 5~32자
- 시험용 서버(Test configuration) 주소 — 아래에 실제 서버 주소도 있다
api_id·api_hash·앱 이름은 예시 값으로 가렸습니다.
같은 화면 아래쪽에는 시험용(Test configuration)과 실제(Production configuration) MTProto 서버 주소, 그 서버의 공개 키가 나옵니다. 라이브러리를 쓰면 직접 넣을 일이 거의 없고, 개발 중에 실제 계정 대신 시험 서버에서 돌려 볼 때 씁니다.
받은 값 지키기
api_id·api_hash 와 내 전화번호 로그인이 합쳐지면 그 프로그램은 내 계정 그대로 움직입니다. 그래서 값은 비밀번호처럼 다룹니다.
- 코드 안에 직접 적지 않고 환경 변수나 설정 파일에 두며, 그 파일은 코드 저장소에 올리지 않습니다.
- 남이 만든 프로그램에 내 값을 넣어 달라는 요청은 거절합니다. 값과 함께 로그인 코드까지 넘기면 계정을 넘기는 것과 같습니다.
- 공개 프로그램을 배포할 때는 반드시 내가 받은 값을 씁니다. 오픈 소스 예제에 들어 있는 견본 값은 시험용이라 요청 수가 크게 묶여 있고, 그대로 배포하면 API_ID_PUBLISHED_FLOOD 오류가 납니다.
다음 단계
| 하려는 것 | 글 |
|---|---|
| 값으로 앱 만들기 | TDLib 이란 |
| 계정이 막히지 않게 | API 이용 약관 |
| 봇이면 충분한지 보기 | API 4가지 고르기 |
자주 묻는 질문
텔레그램 api_id 는 어디서 받나요?
my.telegram.org 에 가입한 전화번호로 로그인한 뒤 API development tools 에서 받습니다.
확인 코드가 문자로 오지 않아요.
my.telegram.org 의 확인 코드는 문자가 아니라 텔레그램 앱으로 옵니다. 그 번호로 로그인된 텔레그램 앱을 확인합니다.
my.telegram.org 확인 코드를 알려 달라고 해요.
알려 주지 않습니다. 이 코드로 계정 삭제까지 할 수 있고, 텔레그램은 이 코드를 다른 곳으로 보내 달라고 요청하지 않습니다.
api_id 를 여러 개 만들 수 있나요?
전화번호 하나에 api_id 하나입니다.
봇을 만들 때도 api_id 가 필요한가요?
봇 API 만 쓴다면 필요 없습니다. @BotFather 가 주는 토큰으로 충분합니다.
참고한 공식 문서
한눈에 정리
- 1로그인
국제 형식 번호 · 앱으로 온 코드.
- 2API development tools
전화번호당 한 쌍.
- 3보관
비밀번호처럼, 배포엔 내 값.
최종 수정 2026-10-06