2017年9月7日木曜日

Pythonで定期ツイートBotを作ることができた

ちまちまとプログラミングの勉強を進めていますが、ようやくPythonでTwitterのBOTをつくることができました。

wakuwakubot
https://twitter.com/wkwkbot
(小さい頃大好きだった「つくってあそぼ」のわくわくさんをリスペクトしています)

現在のVer.は毎朝8時にリストからランダムツイートをするだけですが、後々いろんな機能を追加してもう少し役に立つものにできたらいいなと思います。


ひとまず動くまでこぎつけたものの、プログラミングの知識ゼロからのBOT作成は未知なことが多くて結構つまづきました。まずプログラミング書いたり動かしたりするのに何が必要で、どこで手に入るのかもさっぱりわからず、ググりまくってトライアンドエラーしながらなんとか進めました。
定期ツイートBot作成までの全体のざっくりした手順は下記の通りでした。

=======================================================

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


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


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


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

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


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


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


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


=======================================================


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

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


このPython3をインストールするために、はじめてHomebrewというものを使いました。
こちらの記事を参考にしました。

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

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


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

$ pip3 install python-twitter

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


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


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


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


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


下記のサイトを参考にしました。

個人的に、アクセストークンをメインプログラムに直接記述するのが美しくないような気がして、こちらのサイトを参考にトークンたちを別ファイルに置いて呼び出すようにしました。



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


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



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


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


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




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


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


以上の記事を参考にさせてもらって、ゼロからBotを作ることができました。
今後はtwitter-pythonライブラリでどんな機能を使えるのか調べて、もう少し役に立つBotに成長させていきたいと思います。

0 件のコメント:

コメントを投稿