출처 : https://core.telegram.org/bots/webapps
Web Apps for Bots
텔레그램봇은 어떤 웹사이트도 완전히 대체할 수 있다.이들은 15개 결제 제공업체를 통한 원활한 승인, 통합 결제(구글 페이 및 Apple Pay 포함)를 지원하고 사용자에게 맞춤형 푸시 알림 등을 제공한다.
웹 앱으로 봇은 완전히 새로운 차원을 얻는다.봇 개발자들은 세계에서 가장 널리 사용되는 프로그래밍 언어인 자바스크립트와 무한히 유연한 인터페이스를 만들 수 있다.
웹 앱이 작동하는 것을 보려면 샘플 @DurgerKingBot을 사용해 보십시오.
웹 앱 설계
색 구성표
웹 앱은 항상 사용자의 현재 색 테마에 대한 데이터를 실시간으로 수신하므로 인터페이스의 모양을 그에 맞게 조정할 수 있다.예를 들어 사용자가 주간 모드와 야간 모드 간에 전환하거나 다양한 사용자 지정 테마를 사용하는 경우.
설계 지침
텔레그램 앱은 딱딱하고 매끄러우며 일관된 교차 플랫폼 설계를 따르는 것으로 알려져 있다.당신의 웹 앱은 이러한 원칙을 이상적으로 반영해야 한다.
- 모든 요소는 모바일 우선 접근방식으로 대응하고 설계되어야 한다.
- 상호작용 요소는 이미 존재하는 UI 구성요소의 스타일, 동작 및 의도를 모방해야 한다.
- 포함된 모든 애니메이션은 매끄러워야 하며 이상적으로는 60fps가 되어야 한다.
- 모든 입력과 이미지는 접근성을 위한 라벨을 포함해야 한다.
- 앱은 API가 제공하는 역동적인 테마 기반 색상을 모니터링하고 그에 맞게 활용함으로써 원활한 경험을 제공해야 한다.
웹 애플리케이션 구현
텔레그램은 현재 키보드 버튼, 인라인 버튼, 봇 메뉴 버튼, 첨부 파일 메뉴의 네 가지 웹 앱 실행 방법을 지원하고 있다.
키보드 버튼 웹 앱
웹_app 타입 키보드 버튼에서 시작된 TL;DR: 웹 앱은 텔레그램으로 서비스 메시지에서 bot에 데이터를 다시 보낼 수 있다.WebApp.sendData.이를 통해 봇이 외부 서버와 통신하지 않고도 응답을 만들 수 있다.
사용자들은 사용자 지정 키보드, 봇 메시지 아래의 버튼을 사용하여 봇과 상호작용할 수 있으며, 텔레그램이 지원하는 자유형 문자 메시지나 첨부파일 형식(사진과 비디오, 파일, 위치, 연락처, 여론 조사)을 통해 봇과 상호작용할 수 있다.훨씬 더 많은 유연성을 위해, 봇은 HTML5의 모든 힘을 활용하여 사용자에게 친숙한 입력 인터페이스를 만들 수 있다.
지정된 URL에서 웹 앱을 여는 web_app 유형 키보드버튼을 보낼 수 있다.
사용자로부터 봇으로 데이터를 다시 전송하기 위해, 웹 앱은 텔레그램에 전화를 걸 수 있다.WebApp.sendData 메서드.데이터는 서비스 메시지에서 문자열로 봇에 전송된다.봇은 수신 후 사용자와 계속 통신할 수 있다.
좋은 방법:
- сustom data input interface(날짜 선택을 위한 개인화된 캘린더, 고급 검색 옵션이 있는 목록에서 데이터 선택, 사용자가 "휠을 돌리고" 사용 가능한 옵션 중 하나를 선택할 수 있는 랜덤라이저 등)
- 특정 봇에 의존하지 않는 재사용 가능한 구성 요소.
인라인 버튼 웹 앱
TL;DR: @DurgerKingBot과 같은 대화형 웹 앱의 경우 기본 사용자 정보를 얻고 사용자를 대신하여 봇과의 채팅에 메시지를 보내는 데 사용할 수 있는 웹_app 유형 인라인 키보드 버튼을 사용하십시오.
텍스트 데이터만 수신하는 것이 부족하거나 좀 더 고급스럽고 개인화된 인터페이스가 필요한 경우 web_app 타입의 인라인 키보드버튼을 사용하여 웹 앱을 열 수 있다.
버튼에서, 웹 앱은 버튼에 지정된 URL로 열릴 것이다.사용자의 테마 설정 외에도 기본 사용자 정보(User Information)를 수신한다.ID,name,username,language_code) 및 세션의 고유 식별자인 query_id. 이 식별자는 사용자를 대신하여 bot로 메시지를 다시 보낼 수 있다.
봇은 봇 API 메서드에 응답WebAppQuery를 호출하여 사용자가 보낸 인라인 메시지를 bot로 다시 전송하고 웹 앱을 닫을 수 있다.메시지를 받은 후, 봇은 사용자와 계속 통신할 수 있다.
좋은 방법:
- 완전한 웹 서비스와 모든 종류의 통합.
- 사용 사례는 사실상 무제한이다.
메뉴 단추에서 웹 앱 시작
TL;DR: 웹 앱은 사용자 정의된 메뉴 버튼에서 실행할 수 있다.이것은 단순히 앱에 더 빨리 접속할 수 있는 방법을 제공하며, 그렇지 않으면 인라인 버튼에서 웹 앱을 시작하는 것과 동일하다.
기본적으로 봇과의 채팅은 항상 나열된 모든 명령에 빠르게 액세스할 수 있는 편리한 메뉴 버튼을 보여준다.Bot API 6.0으로 이 버튼을 사용하여 대신 웹 앱을 실행할 수 있다.
메뉴 버튼을 구성하려면 메뉴 버튼이 표시할 텍스트와 웹 앱 URL을 지정해야 한다.이러한 파라미터를 설정하는 방법에는 다음 두 가지가 있다.
- 모든 사용자에 대해 단추를 사용자 정의하려면 @BotFather(다음)를 사용하십시오./setmenubutton명령 또는 Bot Settings > 메뉴 버튼).
- 모든 사용자와 특정 사용자 모두에 대해 단추를 사용자 정의하려면 Bot API에서 setChatMenuButton 방법을 사용하십시오.예를 들어, 사용자의 언어에 따라 단추 텍스트를 변경하거나 봇의 사용자 설정에 따라 다른 웹 앱에 대한 링크를 표시하십시오.
이와 별도로 메뉴 버튼을 통해 오픈한 웹 앱은 인라인 버튼을 사용할 때와 똑같은 방식으로 작동한다.
@DurgerKingBot은 인라인 버튼과 메뉴 버튼 모두에서 웹 앱을 실행할 수 있다.
첨부 파일 메뉴에서 웹 앱 시작
TL;DR: Web App Bots는 사용자의 첨부 메뉴에 직접 추가할 것을 요청할 수 있어, 어떠한 개인 채팅에서도 빠르게 시작할 수 있다.이 모드를 사용하려면 @DurgerKingBot에 대한 이 첨부 파일 메뉴 링크를 연 다음
개인 채팅 메뉴.
웹 앱봇은 사용자의 첨부 메뉴에 직접 추가할 것을 요청할 수 있어, 어떤 사적인 채팅(사용자 또는 다른 봇과 함께)에서도 빠르게 시작할 수 있다.
첨부 메뉴 통합은 현재 텔레그램 광고 플랫폼에서 주요 광고주만 이용할 수 있다.그러나 모든 봇은 테스트 서버 환경에서 사용할 수 있다.
봇에 이 기능을 사용하려면 테스트 서버의 계정에서 @BotFather를 열고/setattach명령 – 또는 Bot Settings > Configure Attachment 메뉴로 이동하십시오.그런 다음 첨부파일 메뉴의 아이콘을 통해 봇의 웹 앱을 실행하기 위해 열 URL을 지정하십시오.
봇은 사용자의 테마 설정 외에 기본 사용자 정보(bot)를 받는다.ID,name,username,language_code,photo), 채팅 파트너에 대한 공개 정보(ID,name,username,photo봇을 연 사용자를 대신하여 모든 유형의 메시지를 채팅으로 보낼 수 있는 웹 보기 세션 query_id의 고유 식별자.
봇은 봇 API 메서드가 응답하는 웹앱쿼리를 호출할 수 있는데, 봇을 통해 사용자가 인라인 메시지를 시작한 개인 채팅으로 보내고 웹앱을 닫는다.
첨부파일에 봇을 추가하는 방법에 대해 자세히 알아보세요.
웹 응용 프로그램 초기화 중
웹 앱을 텔레그램 클라이언트에 연결하려면 다음 위치에 스크립트 tembol-web-app.js를 배치하십시오.<head>다음 코드를 사용하여 다른 스크립트보다 먼저 태그 지정:
스크립트가 연결되면window.Telegram.WebApp다음 필드에서 객체를 사용할 수 있게 된다.
밭유형설명initData | 끈 | 원시 데이터가 웹 앱으로 전송되어 데이터 검증에 편리한 문자열. 경고:봇 서버에서 사용하기 전에 이 필드의 데이터를 확인하십시오. |
initDataUnsafe | WebAppInitData | 입력 데이터가 웹 앱으로 전송된 개체. 경고: 이 필드의 데이터를 신뢰할 수 없다.봇의 서버에서 initData의 데이터를 유효성을 확인한 후에만 사용해야 한다. |
colorScheme | 끈 | 현재 텔레그램 앱에서 사용되는 색상표."밝음" 또는 "어두움" 중 하나. CSS 변수로도 사용 가능var(--tg-color-scheme). |
테마파람 | 테마파람스 | 텔레그램 앱에서 사용되는 현재 테마 설정을 포함하는 개체. |
확장됨 | 부울 | 웹 앱이 사용 가능한 최대 높이로 확장된 경우 True.False, 웹 앱이 화면의 일부를 차지하고 확장() 방법을 사용하여 전체 높이로 확장할 수 있는 경우. |
뷰포트높이 | 플로트 | 웹 앱에서 볼 수 있는 영역의 현재 높이.CSS에서 변수로도 사용 가능var(--tg-viewport-height). 이 애플리케이션은 웹 앱의 상단 부분만 표시할 수 있으며 하단 부분은 화면 영역 밖에 남아 있다.이 위치에서 사용자는 웹 앱을 최대 높이까지 "끌어 당길 수 있고, 봇은 expansion() 방식을 호출하여 같은 작업을 할 수 있다.웹 앱의 위치가 변경됨에 따라 보이는 영역의 현재 높이 값이 실시간으로 업데이트된다. 이 값의 새로 고침 속도는 창의 아래쪽 테두리를 원활하게 따르기에 충분하지 않다는 점에 유의하십시오.인터페이스 요소를 가시 영역 하단에 고정하는 데 사용해서는 안 된다.그 가치를 이용하는 것이 더 적절하다.viewportStableHeight이 목적으로 야전하다 |
뷰포트스테이블높이 | 플로트 | 웹 앱의 마지막 안정적인 상태에서 보이는 영역의 높이.CSS에서 변수로도 사용 가능var(--tg-viewport-stable-height). 이 애플리케이션은 웹 앱의 상단 부분만 표시할 수 있으며 하단 부분은 화면 영역 밖에 남아 있다.이 위치에서 사용자는 웹 앱을 최대 높이까지 "끌어 당길 수 있고, 봇은 expansion() 방식을 호출하여 같은 작업을 할 수 있다.의 가치와는 달리viewportHeight, 값viewportStableHeight사용자 제스처 또는 애니메이션 중에 웹 앱의 위치가 변경될 때 변경되지 않음.의 가치viewportStableHeight모든 제스처와 애니메이션이 완성되고 웹 앱이 최종 크기에 도달한 후에 업데이트될 것이다. 이벤트 기록 viewportChanged매개 변수를 전달하여isStateStable=true이 기능을 사용하면 가시 영역의 높이에 대한 안정적인 상태가 변경될 때 추적할 수 있다. |
메인버튼 | 메인버튼 | 텔레그램 인터페이스의 웹 앱 하단에 표시되는 메인 버튼을 제어하기 위한 개체. |
onEvent(eventType, eventHandler) | 함수 | 앱 이벤트 핸들러를 설정하는 방법.사용 가능한 이벤트 목록을 확인하십시오. |
오프이벤트(이벤트 유형, eventHandler) | 함수 | 이전에 설정된 이벤트 핸들러를 삭제하는 방법. |
sendData(데이터) | 함수 | 봇에 데이터를 전송하는 데 사용되는 방법.이 방법을 호출하면 최대 4096바이트 길이의 데이터 데이터가 담긴 서비스 메시지가 봇에 전송되고, 웹앱은 폐쇄된다.메시지 클래스에서 web_app_data 필드를 참조하십시오. 이 방법은 키보드 버튼을 통해 실행된 웹 앱에서만 사용할 수 있다. |
레디슈트 | 함수 | 텔레그램 앱에 웹 앱이 표시될 준비가 되었음을 알리는 방법. 이 방법은 모든 필수 인터페이스 요소가 로드되는 대로 가능한 한 빨리 호출하는 것이 좋다.이 방법을 호출하면 로딩 자리 표시자가 숨겨지고 웹 앱이 표시된다. 메서드를 호출하지 않으면 페이지가 완전히 로드된 경우에만 자리 표시자가 숨겨진다. |
팽창시키다 | 함수 | 웹 앱을 사용 가능한 최대 높이로 확장하는 방법.웹 앱이 최대 높이로 확장되었는지 확인하려면 텔레그램 값을 참조하십시오.WebApp.isExpanded 매개 변수 |
클로즈업된 | 함수 | 웹 앱을 닫는 방법. |
테마파람스
웹앱은 텔레그램 사용자의 앱에 맞춰 실시간으로 인터페이스의 외관을 조정할 수 있다.이 개체에는 사용자의 현재 테마 설정이 포함되어 있으며,
밭유형설명bg_color | 끈 | 선택 사항.의 배경색#RRGGBB형식을 갖추다 CSS 변수로도 사용 가능var(--tg-theme-bg-color). |
text_color | 끈 | 선택 사항.의 기본 텍스트 색상#RRGGBB형식을 갖추다 CSS 변수로도 사용 가능var(--tg-theme-text-color). |
힌트_색깔 | 끈 | 선택 사항.힌트 텍스트 색:#RRGGBB형식을 갖추다 CSS 변수로도 사용 가능var(--tg-theme-hint-color). |
link_color | 끈 | 선택 사항.링크 색상:#RRGGBB형식을 갖추다 CSS 변수로도 사용 가능var(--tg-theme-link-color). |
button_color | 끈 | 선택 사항.단추 색상:#RRGGBB형식을 갖추다 CSS 변수로도 사용 가능var(--tg-theme-button-color). |
button_text_color | 끈 | 선택 사항.단추 텍스트 색#RRGGBB형식을 갖추다 CSS 변수로도 사용 가능var(--tg-theme-button-text-color). |
메인버튼
이 물체는 텔레그램 인터페이스의 웹 앱 하단에 표시되는 메인 버튼을 제어한다.
밭유형설명문자 메시지를 보내다 | 끈 | 현재 단추 텍스트.기본적으로 계속으로 설정하십시오. |
색을 칠하다 | 끈 | 현재 단추 색상.로 설정themeParams.button_color결석하여 |
텍스트 색 | 끈 | 현재 단추 텍스트 색상.로 설정themeParams.button_text_color결석하여 |
볼 수 있는 | 부울 | 버튼이 표시되는지 여부를 표시한다.기본적으로 false로 설정하십시오. |
isActive | 부울 | 버튼이 활성 상태인지 여부를 표시한다.기본적으로 true로 설정하십시오. |
isProgressVisible | 부울 | 읽기 전용.버튼이 로드 표시기를 표시하는지 여부를 표시한다. |
setText(텍스트) | 함수 | 버튼 텍스트를 설정하는 방법. |
On클릭(콜백) | 함수 | 누름 이벤트 핸들러 버튼을 설정하는 방법.에 대한 별칭Telegram.WebApp.onEvent('mainButtonClicked', callback) |
쇼윈도 | 함수 | 버튼을 볼 수 있게 하는 방법. 첨부파일 메뉴에서 웹 앱을 열면 사용자가 웹 앱 인터페이스와 상호 작용할 때까지 기본 단추가 숨겨진다는 점에 유의하십시오. |
숨다 | 함수 | 버튼을 숨기는 방법. |
활성화하다 | 함수 | 버튼을 활성화하는 방법. |
불능화하다 | 함수 | 버튼을 비활성화하는 방법. |
showProgress(활성 상태로 leaveActive) | 함수 | 버튼에 로드 표시기를 표시하는 방법. 버튼에 연결된 동작에 시간이 오래 걸릴 수 있는 경우 로딩 진행률을 표시하는 것이 좋다.기본적으로 이 버튼은 작업이 진행 중일 때 비활성화된다.매개 변수인 경우leaveActive=true버튼이 활성화 상태로 유지됨. |
hideProgress() | 함수 | 로드 표시기를 숨기는 방법. |
setParams(파람) | 함수 | 버튼 파라미터를 설정하는 방법.매개 변수 매개 변수는 변경해야 하는 하나 이상의 필드를 포함하는 개체: 텍스트 - 버튼 텍스트; color - 버튼 색상; text_color - 버튼 텍스트 색상; is_active - 버튼 활성화; is_light - 버튼을 표시하십시오. |
이 모든 방법은 체인으로 연결될 수 있도록 메인버튼 객체를 반환한다.
WebAppInitData
이 개체에는 웹 앱이 열리면 전송되는 데이터가 들어 있다.키보드 버튼에서 웹 앱이 실행된 경우 비어 있다.
밭유형설명query_id | 끈 | 선택 사항.응답WebAppQuery 방법을 통해 메시지를 전송하는 데 필요한 웹 앱 세션의 고유 식별자. |
사용자 | WebAppUser | 선택 사항.현재 사용자에 대한 데이터가 들어 있는 개체. |
리시버 | WebAppUser | 선택 사항.첨부 파일 메뉴를 통해 봇이 시작된 채팅에서 현재 사용자의 채팅 파트너에 대한 데이터가 들어 있는 개체.첨부 파일 메뉴를 통해 실행된 웹 앱의 경우에만 반환됨. |
start_param | 끈 | 선택 사항.링크를 통해 전달된 startattach 매개 변수의 값.링크를 통해 첨부 파일 메뉴에서 시작할 때만 웹 앱으로 반환됨. 의 값start_param또한 파라미터는 GET-매개변수에서도 전달된다.tgWebAppStartParam웹 앱이 올바른 인터페이스를 바로 로드할 수 있도록 하기 위해서입니다. |
auth_date | 정수 | 양식이 열린 유닉스 시간. |
해시하다 | 끈 | 통과된 모든 매개 변수의 해시, 봇 서버가 유효성을 확인하는 데 사용할 수 있다. |
WebAppUser
이 개체에는 웹 앱 사용자의 데이터가 들어 있다.
밭유형설명id | 정수 | 사용자 또는 봇의 고유 식별자.이 숫자는 32개 이상의 유의 비트를 가질 수 있으며 일부 프로그래밍 언어는 이를 해석하는 데 어려움/침묵적인 결함을 가질 수 있다.최대 52개의 유의 비트를 가지고 있으므로, 64비트 정수나 이중 정밀한 플로트 타입은 이 식별자를 저장하기에 안전하다. |
is_bot | 부울 | 선택 사항.맞아, 이 사용자가 봇이라면.수신기 필드에서만 반환됨. |
first_name | 끈 | 사용자 또는 봇의 이름. |
last_name | 끈 | 선택 사항.사용자 또는 봇의 성. |
사용자 이름 | 끈 | 선택 사항.사용자 또는 봇의 사용자 이름. |
language_code | 끈 | 선택 사항.사용자 언어의 IETF 언어 태그.사용자 필드에서만 반환됨. |
photo_properties | 끈 | 선택 사항.사용자 프로필 사진의 URL.사진은 .jpeg 또는 .svg 형식일 수 있다.첨부 파일 메뉴에서 실행된 웹 앱에 대해서만 반환됨. |
웹 앱을 통해 수신된 데이터의 유효성을 확인하는 중
웹앱을 통해 수신한 데이터를 검증하려면 텔레그램에서 데이터를 전송해야 한다.WebApp.init데이터 필드의 bot 백엔드.데이터는 일련의 필드 값 쌍으로 구성된 쿼리 문자열이다.
수신된 해시 매개 변수와 데이터 체크 문자열의 HMAC-SHA-256 시그니처 16진수 표현, 비밀 키, 즉 봇 토큰의 HMAC-SHA-256 시그니처와 상수 문자열의 HMAC-SHA-256 시그니처를 비교하여 수신된 데이터의 무결성을 확인할 수 있다.WebAppData열쇠로 쓰였다.
데이터 확인 문자열(Data-check-string)은 수신된 모든 필드의 체인으로, 알파벳순으로 정렬되어 있다.key=<value>구분 기호로 사용되는 라인 피드 문자('\n', 0x0A) 포함 - 예:'auth_date=<auth_date>\nuser=<user>\nquery_id=<query_id>'.
전체 점검은 다음과 같이 보일 수 있다.
data_check_string = ...
secret_key = HMAC_SHA256(<bot_token>, "WebAppData")
if (hex(HMAC_SHA256(data_check_string, secret_key)) == hash) {
// data is from Telegram
}
오래된 데이터의 사용을 방지하려면 웹 앱에서 데이터를 받은 시간의 Unix 타임스탬프가 포함된 auth_date 필드를 추가로 확인하십시오.
검증되면 서버에서 데이터를 사용할 수 있다.복잡한 데이터 유형은 JSON 직렬화된 개체로 표현된다.
웹 앱에 사용 가능한 이벤트
웹 앱은 텔레그램 앱에서 이벤트를 수신할 수 있으며, 이 앱에 핸들러를 첨부할 수 있다.Telegram.WebApp.onEvent(eventType, eventHandler)방법의내부eventHandler이 물체는 텔레그램에 관한 것이다.WebApp, 처리기로 전송되는 매개 변수 집합은 이벤트 유형에 따라 달라진다.다음은 가능한 이벤트 목록이다.
eventType설명themeChanged | 사용자의 텔레그램 앱(야간 모드로 전환 포함)에서 테마 설정이 변경될 때마다 발생한다. eventHandler는 매개변수를 수신하지 않으며, 이를 통해 새로운 테마 설정 및 색상표를 수신할 수 있다.테마파람과 이것.colorScheme. |
viewportChanged | 웹 앱의 볼 수 있는 섹션이 변경될 때 발생한다. eventHandler는 단일 필드가 stateStable인 객체를 수신한다.만약isStateStable= true, 웹 앱의 크기 조정이 완료됨.거짓일 경우 크기 조정은 계속된다(사용자가 웹 앱을 확장하거나 축소하거나 애니메이션 오브젝트가 재생 중).이 뷰포트에서 볼 수 있는 섹션 높이의 현재 값을 사용할 수 있음키. |
mainButtonClicked | 메인 버튼을 누를 때 발생한다. eventHandler는 매개 변수를 수신하지 않는다. |
첨부 파일에 봇 추가
첨부 메뉴 통합은 현재 텔레그램 광고 플랫폼에서 주요 광고주만 이용할 수 있다.그러나 모든 봇은 테스트 서버 환경에서 사용할 수 있다.테스트 서버의 Botfather와 대화하여 통합을 설정하십시오.
특수 링크는 첨부 파일 메뉴에 봇을 추가하는 데 사용된다.
https://t.me/botusername?startattach
또는
https://t.me/botusername?startattach=command
예를 들어 @DurgerKingBot에 대해 이 첨부 파일 메뉴 링크를 연 다음
개인 채팅 메뉴.
링크를 열면 사용자에게 봇을 첨부 메뉴에 추가하라는 메시지가 표시된다.봇이 이미 추가된 경우 첨부파일 메뉴는 현재 채팅에서 열리며 그곳의 봇으로 리디렉션된다(1대1 채팅에서 링크를 연 경우).링크에 비어 있지 않은 startattach 매개변수가 포함된 경우, start_param 필드와 GET 매개변수 tgWebAppStartParam에서 웹 앱으로 전달된다.
다음과 같은 링크 형식도 지원된다.
https://t.me/username?attach=botusername
https://t.me/username?attach=botusername&startattach=command
https://t.me/+1234567890?attach=botusername
https://t.me/+1234567890?attach=botusername&startattach=command
이러한 링크는 특정 사용자와의 채팅의 첨부파일 메뉴에서 웹 앱을 연다.봇이 첨부파일에 아직 추가되지 않은 경우, 사용자에게 첨부파일에 추가하라는 메시지가 나타날 것이다.링크에 비어 있지 않은 startattach 매개변수가 포함된 경우, start_param 필드와 GET 매개변수 tgWebAppStartParam에서 웹 앱으로 전달된다.
테스트 환경에서 봇 사용
테스트 환경에 로그인하려면 다음 중 하나를 사용하십시오.
- iOS: Settings 아이콘 > Accounts > 다른 계정에 로그인 > Test를 10회 탭한다.
- 텔레그램 데스크톱: ☰ Settings > Shift + Alt + 'Add Account'를 열고 'Test Server'를 선택한다.
- macOS: 설정 아이콘을 10번 클릭하여 디버그 메뉴를 열고 ⌘ + '계정 추가'를 클릭한 후 전화 번호를 통해 로그인하십시오.
테스트 환경은 주 환경과 완전히 분리되어 있으므로 @BotFather로 새로운 사용자 계정과 새로운 봇을 만들어야 할 것이다.
봇 토큰을 받은 후 다음과 같은 형식으로 Bot API에 요청을 보낼 수 있다.
https://api.telegram.org/bot/test/METHOD_NAME
https://core.telegram.org/bots/webapps
'코인마이닝(PoW) & PoS & NFT > Ton' 카테고리의 다른 글
톤코인의 티커가 OKX 암호화폐 거래소에서 변경됩니다. (일시 거래중단) (0) | 2022.04.20 |
---|---|
블록체인 분석 (Ton, 이더리움2.0 & 솔라니) (0) | 2022.04.19 |
💎TON 재단, 6일만에 7억9100만 달러 확보! (0) | 2022.04.17 |
카메룬, 콩고민주공화국(DRC) 및 콩고공화국, TON 블록체인과 파트너십을 체결한다고 공표 — 포브스 보고서. (0) | 2022.04.13 |
카메룬, 콩고민주공화국, 콩고공화국이 TON을 필두로 암호화폐 채택을 향한 큰 발걸음을 내딛는다. (0) | 2022.04.13 |