2017-01-15 1 views
1

텔레포 (telepot) 파이썬 라이브러리를 사용하고 있습니다. 누군가의 사용자 ID (번호)를 가지고있을 때 메시지를 보낼 수 있다는 것을 알고 있습니다. 사용자 ID가 없어도 사용자에게 메시지를 보낼 수 있는지 (예 : '@'로 시작하는 사용자 이름) 사용자 이름으로 변환 할 수 있는지 알고 싶습니다.사용자 이름을 사용하여 전보 봇을 가진 사람에게 메시지를 보내려면 어떻게해야합니까?

+0

[특정 사용자에 대해 telegram chat \ _id를 얻는 방법은 무엇입니까?] (http://stackoverflow.com/questions/31078710/how-to-obtain-telegram-chat-id-for-a-specific -user) – koalo

답변

0

Telegram Bot API documentation에 따르면 @channelusername을 지정할 수 있습니다.

Documentation screenshot

UPDATE

이 달성 할 수 없다. 나는 전보 봇 API의 변경점에 this note을 발견

이 작업을 수행하려면

는, 봇 당신은 사용하여 사용자에게 메시지를 보낼 수 없습니다

Documentation screenshot

+0

나는 그렇게했지만 효과가 없었다. – TheGreatA

+0

그런 다음 사용했던 코드 예제로 질문을 업데이트하십시오. –

+3

'bot.sendMessage ('@ something', 'Hello')'를 사용하여 chat_id가 존재하지 않는다는 오류가 발생했습니다. 그러나 나는 그것이 내 자신의 ID이기 때문에 그럴 것이라고 확신합니다. – TheGreatA

2

채널에서 관리자 권한이 있어야합니다 자신의 사용자 이름이 @username 인 경우 봇이 관리자 인 채널 사용자 이름으로 메시지를 보낼 수 있습니다. 전보 봇 API는 메시지를 보낼 때 chat_id 식별자를 사용합니다. chat_id 명의 사용자를 얻으려면 telegram-cli을 사용할 수 있지만 프로젝트가 중단되어 직접 디버깅해야하기 때문에 쉽지 않습니다. 당신이 명령은 다음을 수행해야합니다 귀하의 경우 :

> resolve_username vahid_mas 

출력은 다음과 같이 될 것입니다 :

{"user": {"username": "Vahid_Mas", "id": "$010000006459670b02c0c7fd66d44708", "last_name": "", "peer_type": "user", "print_name": "Vahid", "flags": 720897, "peer_id": 191322468, "first_name": "Vahid", "phone": "xxxxxxx"}, "online": false, "event": "online-status", "state": -1, "when": "2017-01-22 17:43:16"} 
2

이미 사용했던 사용자에게 메시지를 보낼 만 가능합니다 /에서 시작하여 봇. 그들이 봇을 시작할 때 보내거나 시작하는 메시지에서 곧바로 update.message.from.user_id를 찾을 수 있으며 동일한 방법을 사용하여 update.message.from.username을 찾을 수 있습니다. "@Username"에게 메시지를 보내려면 봇을 시작한 다음 user_id와 함께 사용자 이름을 저장해야합니다. 그런 다음 메시지를 보낼 때마다 올바른 사용자 ID를 찾기 위해 사용자 이름을 입력 할 수 있습니다.

관련 문제