어쨌든 부팅된 PC로 홍보 트윗 자동 전달

개요


왜냐하면 하나하나 전달 버튼을 누르는 게 귀찮아요.
꺼져!자동화되었죠!이렇게 되면

여러 번 반복해서 전달하는 것이 의외로 번거롭다


저는 음악 같은 거 만드는 걸 좋아해요.
며칠 전에 신곡이 발표되었다.
홍보니까 꼭 들어주세요.

이거 홍보 몇 번 해야 되는데 귀찮죠?
갑자기 그렇게 생각해.
너무 귀찮아요. 그럼 자동화하세요.

Twitter API 사용 준비


Twitter API 사용 권한 준비


이 부분을 참고하여 얻으십시오.
  • ※ 2019년 8월 정보-Qita
  • 먼저 얻은 것을 간단명료하게 녹여라key.py.
    key.py
    API_KEY = 'hoge'
    API_SECRET = 'hoge'
    ACCESS_TOKEN = 'hoge'
    ACCESS_TOKEN_SECRET = 'hoge'
    
    이어서 제작Twitter_API.py하고 API를 사용하세요.
    Twitter_api.py
    
    import key
    
    API_KEY = key.API_KEY
    API_SECRET = key.API_SECRET
    ACCESS_TOKEN = key.ACCESS_TOKEN
    ACCESS_TOKEN_SECRET = key.ACCESS_TOKEN_SECRET
    
    
    def api_proc():
        # TwiterのAPIを使えるようにする
        api = OAuth1Session(
            API_KEY,
            API_SECRET,
            ACCESS_TOKEN,
            ACCESS_TOKEN_SECRET
        )
    
        return api
    
    
    이렇게 Twitter_api.api_proc()하면 트위터의 API 사용권은 반환값으로 부여된다.

    실제로 API를 돌려보도록 하겠습니다.


    하고 싶은 일을 정리하다


    하고 싶은 일을 간단명료하게 정리하는 것이 바로 이렇다.
  • 자신의 계정으로 지정된 트위터 ID의 RT를 해제한다.
  • 지정된 트위터 ID를 자체 계정으로 RT한다.
  • 왜 해제해야 돼요?이렇게 말하면 같은 트위터를 두 번 전송할 수 없기 때문이다
    같은 트윗을 올리려면 한 번 해제해야 하기 때문이다.
    그나저나 아무 잘못도 없을 거예요.(엄밀히 말하면 exception이 발생하지 않는다)

    트위터 ID 가져오기


    트위터의 이 트위터에 뛰어올랐다.
    컴퓨터라면 적당한 트위터에 마음대로 클릭하면 된다.
    그렇지 않으면 기본적으로 날짜를 누르면 이 트위터로 이동할 수 있다.
    나는 그 웹 페이지의 URL이 아래와 같다고 생각한다.https://twitter.com/MushroomRecord/status/1346128262871744512status의 오른쪽, 즉 이 URL이면1346128262871744512이 바로 해당 ID입니다.
    이걸로 할 거니까 일단 제어부터 해.

    이동 API


    이번에는 POST에서 API를 이동하면 간단하게 끝낼 수 있어요.
    스크립트도 간단해진다.
    main.py
    import Twitter_API
    
    
    def main(tweet_id: int):
        TWITTER = Twitter_API.api_proc()
        URL_TWITTER = 'https://api.twitter.com/1.1/statuses'
        URL_RT = f'{URL_TWITTER}/retweet/{tweet_id}.json'
        URL_UNRT = f'{URL_TWITTER}/unretweet/{tweet_id}.json'
    
        TWITTER.post(URL_UNRT)
        TWITTER.post(URL_RT)
    
    
    if __name__ == '__main__':
        tweet_id = 1346128262871744512
        main(tweet_id)
    
    
    내가 이걸 실행하고 싶으면 내 홍보 트윗이 퍼질 거야.
    변경tweet_id하면 비공개 계정이 아니면 어떤 트위터든 RT를 할 수 있어야 한다.

    어쨌든 부팅된 컴퓨터를 이용해서 정기적으로 운행을 해요.


    저는 계속 컴퓨터랑 맥을 켜고 있어요.
    이 게으른 점을 사용하면 정기적으로 집행할 수 있다.cron 있을 것 같다며 찾아보니
    Mac면Launchd이 더 좋을 것 같은데, 잘 모르겠어요.
    따라서 사용Launchd은 정기적으로 집행한다.
    autoself_retweet.plist
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
    <plist version="1.0">
        <dict>
            <key>Label</key>
            <string>autoself_retweet</string>
    
            <key>ProgramArguments</key>
            <array>
                <string>pythonのパス</string>
                <string>スクリプトのパス</string>
            </array>
    
            <key>StartInterval</key>
            <integer>3600</integer>
    
        </dict>
    </plist>
    
    
    keyなんかの属性로 한 조를 이루다.
  • Label 임의의 이름을 설정합니다.Labelファイル名는 같아야 합니다.
  • ProgramArguments에 실행할 명령과 매개변수를 입력합니다.
  • 나는 이곳을 잘 모른다. 사실 나는 통용적인 기술로 'cd로 이동한 후에 그곳의 스크립트를 읽는다.' 라고 기술하고 싶다
    순조롭게 진행되지 못했기 때문에 실용성을 중시하기 위해 명령을 한 줄로 정리하였다
    자세한 사람 있으면 알려주세요.
  • StartInterval 몇 초 간격으로 집행하기로 했다.
  • 정기적으로 실행할 수 있도록 설정


    이렇게 하면 n초 간격으로 파이톤 스크립트의 실행 환경이 있기 때문에 실제적으로 Mac에 넣습니다.
  • ~/Library/LaunchAgents에 설정autoself_retweet.plist.
  • 터미널에서 다음 명령을 입력한 후 정기적으로 실행됩니다.
  • Terminal
    $ launchctl load ~/Library/LaunchAgents/autoself_retweet.plist
    
  • 위의 절차에 따라 스크립트를 실행하지 않을 것으로 생각되어 테스트가 실패했다면 다음 명령을 사용하여 제거합니다.
  • Terminal
    $ launchctl unload ~/Library/LaunchAgents/autoself_retweet.plist
    
    그럼, 좋은 정기 집행 생활을 하세요.

    참고 자료


    정기적으로 스크립트 실행 - Qita

    좋은 웹페이지 즐겨찾기