반응형
Notice
Link
스택큐힙리스트
전화번호의 사용자 ID를 텔레그램에서 가져오는 방법 본문
반응형
텔레그램에 여러 연락처에 메시지를 보내는 봇을 만들고 있습니다.
사용자는 봇과 연락처를 공유할 수 있습니다. 그런 다음 getUpdates를 사용하여 전화번호를 얻습니다.
sendMessage 메서드를 사용하려면 chat_id가 필요합니다.
이 사용자의 전화번호로 chat_id를 얻는 방법은 무엇인가요?
이 방법보다 나은 방법이 있는지 알고 싶습니다.
답변 1
메시지를 보낸 후에는 서버 응답과 함께 봇이 방금 게시한 메시지를 받게 됩니다. 이 새로 생성된 메시지의 contact
필드에는 방금 공유한 사용자의 정보가 포함되어 있습니다. 이 정보에는 해당 사용자의 텔레그램 user_id
도 포함되어 있습니다. 이 user_id는 사용자의 채팅 id와 동일합니다.
즉시 deleteMessage 메소드를 사용하여 메시지를 삭제할 수 있습니다.
다음은 일반적인 요청/응답 형식으로 이 작업을 수행하는 예시입니다. 그러나 이를 위해 프레임워크를 사용하는 것이 좋습니다:
https://api.telegram.org/{BOT_TOKEN}/sendContact?chat_id=123456789&phone_number=+989123456789&first_name=Some+Random+String
이 요청에 대한 응답은 다음과 같습니다:
{
ok: true,
result: {
message_id: 12345678987654321,
from: {
id: 987654321,
first_name: 봇 이름,
username: mybot_bot
},
chat: {
id: 123456789,
first_name: 대화 파티,
last_name: 대화 파티,
type: 개인
},
date: 1484612850,
contact: {
phone_number: 989123456789,
first_name: 임의의 랜덤 문자열,
user_id: 654789321
}
}
}
user_id: 654789321
는 우리가 관심 있는 부분입니다. 이제 메시지를 삭제할 수 있습니다.
답변 2
텔레그램에서 전화번호의 사용자 ID를 얻는 방법에 대해 알아보겠습니다. 전화번호로부터 사용자 ID를 획득하는 방법은 텔레그램의 공식 API를 활용하여 가능합니다.먼저, 텔레그램 API를 이용하기 위해 개발자 계정을 만들어야 합니다. 개발자 계정을 만들면 API 액세스 토큰이 제공되는데, 이 토큰을 사용하여 사용자 ID를 가져올 수 있습니다.
API 액세스 토큰을 받으면, 코드 작성을 위해 프로그래밍 언어를 선택해야 합니다. 예를 들어, Python을 사용한다고 가정하겠습니다. Python에서는 'python-telegram-bot'이라는 라이브러리를 설치하여 사용할 수 있습니다.
먼저 필요한 라이브러리를 설치하고, API 액세스 토큰을 설정해야 합니다. 이후 코드에서 본인의 API 토큰을 사용하여 텔레그램 봇 객체를 만들 수 있습니다.
봇 객체를 만들고 나면, 사용자의 전화번호를 이용하여 사용자 ID를 얻을 수 있습니다. 사용자의 전화번호는 텔레그램 내에서 접근이 허용된 상태여야 합니다. 따라서 사용자에게 요청을 보내 전화번호 접근 권한을 허용할 것인지 물어봐야 합니다.
사용자에게 요청을 보내기 위해 'request_contact' 매개변수를 추가하여 InlineKeyboardButton 또는 ReplyKeyboardMarkup를 사용할 수 있습니다. 이를 통해 사용자에게 표시되는 키보드에 전화번호 요청이 포함됩니다.
사용자가 전화번호를 제공하게 되면, 텔레그램은 해당 정보를 제공하여 사용자 ID를 가져올 수 있게 됩니다. 이 정보를 활용하여 필요한 작업을 수행할 수 있습니다.
결론적으로, 텔레그램에서 전화번호의 사용자 ID를 얻는 방법은 공식 API를 활용하는 것입니다. 이를 위해 개발자 계정을 만들고 API 액세스 토큰을 받아야 하며, Python 등의 프로그래밍 언어를 사용하여 텔레그램 봇 객체를 생성하고 사용자에게 전화번호 접근 권한을 요청하는 등의 작업을 수행해야 합니다. 이를 통해 전화번호로부터 사용자 ID를 얻을 수 있습니다.
반응형
Comments