아이폰 단축어에서 POST API 호출해서 텔레그램으로 인증코드 공유하기

Beaver Bridge - Aug 22 - - Dev Community

밤에 OTT 보려고 들어갔는데, 인증을 받으라고 하는데, 대표 계정인 사람이 자고 있어서 인증코드를 볼 수 없을 때를 위함.

준비

  1. 인증코드를 보내는 전화번호를 연락처에 등록한다. 그래야 보낸 사람 선택할 때 편하다.(넷플릭스는 번호가 달라지는건지, 그냥 내용에 넷플릭스가 있으면 보내게 변경했다)
  2. 텔레그램에 가입한다.

텔레그램 봇

  1. 텔레그램 BotFather(https://t.me/BotFather) 에서 봇을 만들어야 한다. POST API를 전송하는 봇이다.
  2. /newbot 을 입력하면 봇의 이름을 입력하라고 나오고, 이름을 입력하면 토큰을 알려준다.

텔레그램 채널

  1. 공개 채널을 만든다. 채널의 고유id를 쉽게 알기위해 공개로 만들어야 한다. 채널 링크에 사용될 이름을 적당히 넣으면 된다.
  2. 채널의 관리자로 위에서 만든 봇을 관리자로 추가한다. 메시지 전송 권한은 끄면 안된다.
  3. api를 호출한다. 사용하는 프로그램있으면 쓰고, 없으면 https://reqbin.com 이런 거 사용한다. url은 https://api.telegram.org/bot토큰/sendMessage?text=내용&chat_id=@봇이름 이다. 실제로는 https://api.telegram.org/bot661928238:AEoidd_eidjab/sendMessage?text=내용&chat_id=@my_channel_name 이런 느낌이다.
  4. 텔레그램 채널에 메시지가 오면 성공
  5. 호출 결과를 보면 id-가 붙은 숫자가 있는데, 이게 채널의 고유id다. 위의 url의 chat_id에 -가 붙은 저 숫자를 넣으면되니 채널은 비공개로 변경한다.

아이폰 단축어

  1. 단축어 앱에서 자동화 조건으로 다음 조건으로 메시지를 받을 때: [발신자 xxxx] 가 되게 한다. (혹은 특정 OTT의 제목을 적어도 된다)
  2. 동작에는 메시지를 입력으로 받기 -> 단축어입력을 url 인코딩 -> https://api.telegram.org/~~~~?chat_id=-28237381&text=URL인코딩된 텍스트 로 설정하고 > 를 눌러서 메소드를 POST 로 선택한다.
  3. 테스트할 때는 메시지를 입력으로 받기 대신에 텍스트를 직접 입력하고 수동으로 실행하면 편하다.
. . . . . . . . . . . . . . . . . . . . . . . . . . .