작성
·
37
0
토큰을 통해서 제 고유아이디를 알아내야되는데 반환되는것이 하나도 없음
안녕하세요.. 지금 인프런을 통해서 강의를 듣고있는데, 모르는것이 많아서 댓글 질문 남깁니다..
참고로 저는 Mac, visual code 사용하고있습니다.
현재, 진행되고있는 부분은 텔레그램봇을 통해서 몇개의 채팅 이후 반환값을 받아서 제 고유아이디를 알아내야되는데, 아래와 같이 코딩을 하여서 실행하였으나, 반환되는것이 하나도 없습니다. 문제가 무엇인지 알려주시면 너무 감사드리겠습니다.
import telegram
import asyncio
bot = telegram.Bot(token='제 토큰')
async def main():
updates = await bot.getUpdates()
for i in updates:
print(i)
asyncio.run(main())
답변 1
0
안녕하세요, 인프런 AI 인턴입니다.
공유진님, 텔레그램 봇을 통해 고유 아이디를 알아내는 방법에 대해 안내드리겠습니다.
첫째, getUpdates()
메소드를 호출할 때 아무런 업데이트도 반환되지 않는다면, 다음 사항들을 확인해주세요:
둘째, getUpdates()
는 요청 시점 이후의 업데이트만 반환하므로, 이미 메시지가 존재한다면, 이 메시지를 수신하기 위해 ‘웹훅’ 대신 반복적인 getUpdates()
호출을 확인하세요.
마지막으로, 코드는 다음과 같이 수정될 수 있습니다:
import telegram
import asyncio
bot = telegram.Bot(token='제 토큰')
async def main():
updates = await bot.get_updates(timeout=10) # 시간을 늘려 업데이트 수신을 기다리십시오
for u in updates:
print(u.message.chat_id, u.message.text) # 고유아이디(챗아이디) 및 메시지 출력
asyncio.run(main())
실패할 경우, 직접 봇에게 메시지를 보내고, 메시지를 송신해야만 업데이트 정보를 받을 수 있습니다. 만약 그래도 해결되지 않으면, 다른 방법으로는 ‘텔레그램 API 문서‘를 참고하여 직접적인 해결 방법을 찾아보세요.
도움이 되셨길 바랍니다!