사쿠라 VPS(ubuntu14.04) 빌려, twitterbot 만들었다.

소개



안녕하세요.
4년간 이른바에 살았던 적이 있습니다. 츠쿠바에 거주하는 야기 누마입니다.
학생 3명이 룸 공유합니다.
이번은 최근, 서버 빌렸기 때문에 조금 환경 구축이 테라루비로 bot 만들어 보았을 때의 메모입니다.

서버 환경 구축



우선, 서버 빌리면 각 유저마다 public_html을 만들고, 그 속에서 작업할 수 있도록 하고 싶었기 때문에 했습니다.
아파치에서는
  • /etc/apache2/mods-available에 각 모듈을로드하기위한 스크립트 본문
  • /etc/apache2/mods-enabled에로드 스크립트에 대한 링크

  • 가 있습니다. 그래서 userdir 모듈을 활성화하기 위해 다음과 같이 링크를 붙입니다.

    cd/etc/apache2/mods-enabled
    sudo ln -s ../mods-available/userdir.conf userdir.conf
    sudo ln -s ../mods-available/userdir.load userdir.load

    이제/home/각 사용자/public_html 아래에서 작업할 수 있습니다.

    sudo a2enmod userdir

    이 명령으로도 가능한 것 같습니다. 확인하지 않았습니다.

    일단 이번에는 사용하지 않지만 cgi 설정도합니다.
    ubuntu이므로, 다음의 요령으로 또 링크를 붙입니다.

    sudo ln -s/etc/apache2/mods-available/cgi.load/etc/apache2/mods-enabled/cgi.load

    그런 다음/etc/apache2/sites-available/000-default.conf를 편집합니다.

    sudo vi/etc/apache2/sites-available/000-default.conf

    /etc/apache2/sites-available/000-default.conf
    Include conf-available/serve-cgi-bin.conf #コメントを外す
    

    그런 다음 확장자를 설정합니다.

    sudo vi/etc/apache2/mods-available/mime.conf

    /etc/apache2/mods-available/mime.conf
    AddHandler cgi-script .cgi .rb #.rb追加
    

    그런 다음 cgi를 이동하는 디렉토리를 설정합니다.

    /etc/apache2/conf-available/serve-cgi-bin.conf
    <IfDefine ENABLE_USR_LIB_CGI_BIN>
        #ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
        #<Directory "/usr/lib/cgi-bin">
        ScriptAlias /cgi-bin/ /home/*/
        <Directory "/home/*">    
            AllowOverride None
            Options +ExecCGI -MultiViews+SymLinksIfOwnerMatch #追加
            Require all granted
        </Directory>
    </IfDefine>
    

    /home/yaginuuu/public_html/index.rb
    #!/usr/bin/ruby
    # coding:utf-8
    
    puts "Content-type:text/plain"
    puts ""
    puts "Hello World."
    

    브라우저에서 확인


    bot 만들기



    이번은 환경 구축 메인이므로, 정기적으로 중얼거리고 간단한 bot로 하려고 생각합니다.
    우선, bot용의 계정 만들기.
    그런 다음 앱 관리 페이지 에서 새 응용 프로그램을 만듭니다.
    이것은 조사하면 많이 있기 때문에 할애합니다.

    Keys and AccessTokens 탭의
  • Consumer Key (API Key)
  • Consumer Secret (API Secret)
  • Access Token
  • Access Token Secret

  • 삼가합니다.

    그런 다음 gem을 설치합니다.

    gem install twitter

    다음에 이런 느낌의 파일을 준비합니다.
    각 키는 yaml에 쓸 때.

    config.yml
    consumer_key: "YOUR_CONSUMER_KEY"
    consumer_secret: "YOUR_CONSUMER_SECRET"
    access_token: "YOUR_ACCESS_TOKEN"
    access_token_secret: "YOUR_ACCESS_SECRET"
    

    bot.rb
    # coding:utf-8
    
    require 'yaml'
    require 'twitter'
    
    keys = YAML.load_file(File.expand_path('../config.yml', __FILE__))
    
    client = Twitter::REST::Client.new do |config|
      config.consumer_key        = keys["consumer_key"]
      config.consumer_secret     = keys["consumer_secret"]
      config.access_token        = keys["access_token"]
      config.access_token_secret = keys["access_token_secret"]
    end
    
    str = %w(おなかすいた 旅行いきたひ 貧乏生活 スノボしたい かに食べ行こう ルームシェア楽しい ruby大好き youtuberになろうかな)
    client.update(str.sample)
    

    그런 다음 정기적으로 트윗하기 위해 cron을 움직입니다.
    여러가지 방법이 있습니다만, 이번은 이하 요령으로 합니다.

    crontab -e
    */30 * * * * /home/yaginuuu/.rbenv/shims/ruby(実行コマンド) /home/yaginuuu/public_html/bot.rb(実行ファイル)
    

    cron을 작성하는 방법에 대해서는 참고문헌을 참조하십시오.

    이런 간지 에서 확인할 수 있었습니다.

    사이고에게



    서버의 환경 구축에서 bot를 움직이는 곳까지 정리해 보았습니다.

    참고문헌


  • 우분투 아파치에서 Userdir을 사용할 수 있도록
  • crontab 사용법
  • 좋은 웹페이지 즐겨찾기