ngrok과 Python으로 단순히 webhook을 받으십시오.

tl;dr


  • bot의 작성 등에 webhook에 의해 보내 오는 token가 필요할 경우가 있다
  • webhook에는 외부에 게시 할 서버가 필요하지만 가능한 한 빨리 webhook을 받아보십시오.
  • 단순히 청취 할뿐만 아니라 200 OK를 반환하는 서버 등은 Python을 사용하면 쉽게 만들 수있었습니다.

    소재


  • LINE의 Messaging API의 Webhook을 소재로 합니다.
  • 이것은 JSON 형식의 데이터가 POST로 전송됩니다.
  • 이번은 LINE 측에 Webhook 가 수신할 수 있다고 신고할 수 있도록 200 OK 를 돌려줍니다.

  • 흐름


  • 파이썬에서 무엇을 받더라도 200 OK를 반환하는 서버를 만듭니다
  • ngrok 로 외부로부터의 액세스를 받을 수 있는 환경을 만든다
  • ngrok과 함께 제공되는 Inspect 도구로받은 Webhook의 내용을 살펴보십시오.

    파이썬에서 무엇을 받더라도 200 OK를 반환하는 서버 만들기



  • GET이나 POST에 따라 동작을 변경하고 싶으므로 http.server의 BaseHTTPRequestHandler를 사용합니다.
  • htps : // / cs. py 응. rg/그럼/3/ぃb 등 ry/htp. 세 rゔぇr. HTML

  • 이번은 80 port 로 listen 하고, POST 를 받으면 우선 200 OK 만을 돌려주도록 합니다.
  • 
    import http.server
    import socketserver
    import json
    
    class MyHandler(http.server.BaseHTTPRequestHandler):
        def do_POST(self):
            self.send_response(200)
            self.end_headers()
    
    with socketserver.TCPServer(("", 80), MyHandler) as httpd:
        httpd.serve_forever()
    
  • 작성한 후에 실행하십시오. serving at port 80 라고 표시되어 있으면 OK입니다.

  • ngrok로 외부에서 액세스를 받을 수 있는 환경 만들기


  • ngrok 는 로컬 호스트를 간단하게 인터넷에 공개할 수 있는 서비스입니다.
  • htps : / / 응 g로 k. 코m/
  • htps : // 코 m / 미니 노부 / ms / b45dbc70

  • 가입하면 아래와 같은 화면이 되므로 가이드를 따라 갑시다



  • 가이드





  • 명령 프롬프트에서 authtoken을 등록하거나 http tunnel을 시작할 수 있지만 bat 파일을 사용해도 유용합니다.
  • 다운로드 한 zip을 확장하면 ngrok.exe가 있습니다.
  • 같은 위치에 다음과 같은 내용의 파일을 만듭니다.


  • auth.bat
    ngrok authtoken 1UFVG5sdtzGXXXXXXXXX
    

    80listen.bat
    ngrok http 80
    
  • 각각 더블 클릭으로 실행하십시오.
  • auth.bat는 순식간에 닫힙니다.
  • 80listen.bat 는 다음과 같아야 합니다.




  • ngrok





  • 이 윈도우에 표시되어 있는 Forwarding 란의 ngrok.io 로 끝나는 주소가, 당신의 주소입니다.

  • ngrok과 함께 제공되는 Inspect 도구로받은 Webhook의 내용을 살펴보십시오.


  • 시도 외부에서이 ngrok.io 주소로 POST하면
  • ngrok 화면에서/에 POST가 왔음을 표시합니다.



    ngrok





  • python으로 만든 서버 화면에 요청 내용이 표시됩니다.

  • 브라우저에서 http://localhost:4040/inspect/http에 액세스하면 더 명확하게 볼 수 있습니다.
  • htps : / / 응 g로 k. 코 m / cs # 갓찐 g-s r d-in s pect




  • inspect 화면 예


    좋은 웹페이지 즐겨찾기