간단! Heroku에서 움직이는 Twitter bot를 Python으로 구현

Heroku에서 실행되는 Twitter bot를 Python으로 구현하는 방법을 소개합니다.
다 했던 재료라고는 생각합니다만, 2016년판이라고 하는 것으로.

구현 방법은 Heroku에 Python 스크립트를 배포하고 Heroku Scheduler를 사용하여 스크립트를 정기적으로 실행하는 것입니다.

완성판 소스 코드는 다음과 같습니다.
htps : // 기주 b. 코 m / k-에노 모토 / 미니무 m_와 r_ 보트

이 기사에서 설명하는 것


  • Twitter Bot의 최소 소스 코드
  • Heroku에 배포
  • Heroku Scheduler 설정

  • 이 기사에서 설명하지 않는 것


  • Heroku 사용법
  • pip 사용법
  • Twitter API 계정을 만드는 방법

  • 각각 다른 자세한 기사가 있으므로 참고하십시오.

    라이브러리 준비



    사용할 라이브러리를 설치합니다.
    $ pip install python-twitter
    $ pip install bottle
    

    Heroku에게 어떤 라이브러리를 사용할지 알려주어야 하기 때문에 requirements.txt 를 작성합니다.
    $ pip freeze -l > requirements.txt
    

    어쩌면 이런 내용이 될 것입니다.
    bottle==0.12.9
    future==0.15.2
    oauthlib==1.1.2
    python-twitter==3.1
    requests==2.10.0
    requests-oauthlib==0.6.2
    

    Twitter API에 액세스하는 코드



    사전에 Twitter API consumer_key , consumer_secret , access_token_key , access_token_secret취득 방법은 아래의 기사를 참고해 주세요.
    Ruby에서 Twitter API를 사용하여 트윗
    또한 각 키는 보안 관점에서 환경 변수로 설정합니다. Heroku에서 환경 변수를 설정하는 방법은 나중에 설명합니다.

    트윗의 내용은 Web API로부터 취해지고, 자유롭게 어레인지해 주세요.

    tweet.py
    # -*- coding: utf-8 -*-
    
    import os
    from datetime import datetime
    
    import twitter
    
    
    api = twitter.Api(consumer_key=os.environ["CONSUMER_KEY"],
                      consumer_secret=os.environ["CONSUMER_SECRET"],
                      access_token_key=os.environ["ACCESS_TOKEN_KEY"],
                      access_token_secret=os.environ["ACCESS_TOKEN_SECRET"]
                      )
    api.PostUpdate("system time is %s" % datetime.now())
    

    웹 앱 코드(더미)



    이번 포인트가 되는 부분입니다.
    Heroku에서 프로세스를 실행하기 위해 더미 웹 앱을 준비합니다. 이 기사에서는 경량 웹 프레임 워크 bottle을 사용했습니다.
    bottle 문서 에 있는 샘플 코드를 그대로 유용하고 있습니다.

    index.py
    # -*- coding: utf-8 -*-
    
    import os
    from bottle import route, run
    
    
    @route("/")
    def hello_world():
        return "" # ここで返す内容は何でもよい
    
    run(host="0.0.0.0", port=int(os.environ.get("PORT", 5000)))
    

    Procfile



    Procfile은 Heroku 컨테이너에서 실행하는 명령을 나열합니다.
    위의 더미 웹 앱을 시작하는 명령을 설명합니다.

    Procfile
    web: python index.py
    

    runtime.txt



    포인트 그 2입니다.runtime.txt 를 만들고 사용할 런타임을 설명합니다.

    runtime.txt
    python-3.5.2
    

    배포



    이상으로 필요한 파일이 갖추어졌습니다.
    index.py
    tweet.py
    requirements.txt
    runtime.txt
    Procfile
    

    Heroku에 배포하려면 파일을 Git에서 관리해야 합니다. Git에 커밋합니다.
    git add .
    git commit -m "Initial commit"
    

    Heroku에 배포합니다.
    또한 위에서 언급 한 환경 변수 설정은 여기에서 수행됩니다. your_cosumer_key , your_consumer_secret , your_access_token_key , your_access_token_secret 는 자신의 값으로 읽어 주십시오.
    $ heroku create --stack cedar
    $ git push heroku master
    $ heroku config:set CONSUMER_KEY=your_cosumer_key CONSUMER_SECRET=your_consumer_secret ACCESS_TOKEN_KEY=your_access_token_key ACCESS_TOKEN_SECRET=your_access_token_secret
    

    제대로 배포되어 있는지 확인하십시오.
    $ heroku logs
    

    스케줄러 작업 등록



    마지막으로 Heroku Scheduler에 작업을 등록합니다.
    다음 명령을 입력하면 스케줄러 등록 페이지가 시작됩니다.
    $ heroku addons:create scheduler:standard
    $ heroku addons:open scheduler
    

    스케줄러에서 실행할 명령과 빈도를 설정합니다.
    중얼거리는 파이썬 스크립트를 설정해 봅시다.
    $ python tweet.py
    



    이것으로 Twitter bot가 완성되었습니다.

    좋은 웹페이지 즐겨찾기