メインコンテンツへスキップ
見出し画像

プログラミングの知識ゼロの私がPythonでTwitterのBOT作った話

    shum

    こんにちは。こんばんは。グラフィックデザイナーのヨシツグシュンペイです。
    新しいことを勉強したくて、プログラミングを始めてみました。まったくの未経験でしたが、ググりまくってTwitterのランダムツイートBOTをつくることができました。言語はPythonを使いました。なぜPythonを選んだかはまたの機会に...

    プログラミングの知識ゼロからのBOT作成は未知なことが多くて結構つまづきました。
    まず、プログラミング書いたり動かしたりするのに何が必要で、どこで手に入るのかもさっぱりわからず、ググりまくってトライアンドエラーしながらなんとか進めました。なので、これからプログラミングをはじめたい方には多少は役に立つ記事になってると思います。

    Twitter BOT 完成までの全体のざっくりした手順は下記の通りです。プログラミングそのものより、環境構築の方が難しくてめんどくさい印象でした。ちなみに私はMacユーザーです。

    1. MacにPython3をインストールする

    2. Python3のライブラリをインストールする

    3. プログラムを書くためのエディタをインストールする

    ここまでがプログラムを書くための環境の準備です。

    4. TwitterのアカウントをSMS認証して、アクセストークンを取得する

    5. エディタでPythonプログラムを書く

    6. ターミナルからPythonプログラムを動かして、動作を確かめる

    7. ターミナルから、crontabという、自動でプログラムを動かしてくれる機能を編集して、定期的にプログラムを走らせるように設定する

    以上の工程を経て、Botを作ることができました。
    下記詳細です。

    1. MacにPython3をインストールする

    このPython3をインストールするために、はじめてHomebrewというものを使いました。
    こちらの記事を参考にしました。
    【決定版】MacでPythonを使って『機械学習』を学ぶための環境構築
    http://qiita.com/yoshizaki_kkgk/items/4663148a2b3ca078ddbc

    Homebrewは自動でダウンロードとインストールをまとめて行ってくれる便利なパッケージマネージャーです。

    2. Python3のライブラリをインストールする

    ライブラリとは、便利なプログラムをひとまとまりにしたもので、インストールするとその便利プログラムをPythonのプログラム上で呼び出して簡単に使うことができるというものです。
    Python3をインストールすると、pip3という、ライブラリのインストーラーも自動でインストールされるので、それを使って、Twitterにアクセスできる機能を持つライブラリをインストールします。
    私は python-twitter というライブラリをインストールしてみました。
    ターミナルで、

    $ pip3 install python-twitter

    と入力するとインストールできます。

    3. プログラムを書くためのエディタをインストールする

    Atomというエディタをインストールしました。
    上記、**1. Python3をインストールする **で紹介した参考サイトにやり方が書いてあります。

    4. TwitterのアカウントをSMS認証して、アクセストークンを取得する

    http://phiary.me/twitter-api-key-get-how-to/

    5. エディタでPythonプログラムを書く

    下記のサイトを参考にしました。
    PythonでTwitterのBOTを作成する
    https://www.utali.io/entry/2016/10/09/231510

    個人的に、アクセストークンをメインプログラムに直接記述するのが美しくないような気がして、こちらのサイトを参考にトークンたちを別ファイルに置いて呼び出すようにしました。
    PythonでTwitterからツイートを取得してみよう
    http://www.jiriki.co.jp/blog/python/python-twitter

    6. ターミナルからPythonプログラムを動かして、動作を確かめる

    ターミナルの基本的なことがわかっていなくて、これらの記事を参考にしました。

    【保存版】Macでターミナルで使える基本のコマンド8選
    http://qiita.com/kenju/items/77a2dc1b6a60697b1133

    最低限覚えておくべき事
    http://hooktail.org/computer/index.php?%BA%C7%C4%E3%B8%C2%B3%D0%A4%A8%A4%C6%A4%AA%A4%AF%A4%D9%A4%AD%BB%F6

    自分が今どこにいるか?(カレントディレクトリ)という概念があるようで、プログラムのある場所と自分のいる場所を把握して、それを踏まえて命令しないと、うまくプログラムを見つけられないようです。

    7. ターミナルから、crontabという、自動でプログラムを動かしてくれる機能を編集して、定期的にプログラムを走らせるように設定する

    これらを参考にしました。

    cron編集方法
    http://dev.classmethod.jp/etc/mac_de_cron/

    crontabのTIPS
    https://ja.stackoverflow.com/questions/20565/crontab%E3%81%A7python3-command-not-found%E3%81%A8%E3%81%AA%E3%81%A3%E3%81%A6%E3%81%97%E3%81%BE%E3%81%86

    vimの悪さ回避
    http://qiita.com/beychan/items/4d0b3d4e8b49789bffac

    vim使い方
    https://net-newbie.com/linux/commands/vi.html

    ターミナルで
    $ cat /var/mail/ユーザー名
    と入力することで、プログラムのログを見ることができ、どんな動きをしているか、どんなエラーがあるか確認することができるので、エラーの部分をコピペしてググりまくりました。
    python3の位置と、プログラムの位置をフルパスで記述しないとうまく動かないようで、ここでだいぶつまづきましたが、Google御大のおかげでなんとか動くようになりました。

    あとPCがスリープしているとcronが動かないので、Macの省エネ設定でcronに設定した時間のちょっと前にスリープ解除する設定にしました。

    -------------------

    以上の記事を参考にさせてもらって、ゼロからランダムツイートBotを作ることができました。


    そして最近、Pythonの勉強がもう少し進んで、できることが少し増えたので、BOTを改良しました。

    週末くんBOT
    https://twitter.com/wkwkbot
    毎朝10時に、その日の日付と、週末までのカウントダウンを自動でポストするBOTです。
    最初につくったランダムツイートBOTは、毎日夕方になるとリストに登録している晩御飯のメニューをランダムで呟くってものだったのですが、こうやって自動でデータを取得してくるものになるとグッとお役立ち感が増してきますね!
    もっとプログラミングを勉強して、役に立つアプリとかたくさん作りたいです。
    これからプログラミングを始める方、一緒にがんばりましょう!

    そのうち週末くんBOTの中身とか公開しようと思います。
    たぶん簡略化できる箇所やもっと美しい書き方などあると思うので、アドバイスもらえたら嬉しいです。

    ではまた。

    あなたへのおすすめ