理由

pythonのモジュールで、twitterAPIを簡単に叩けるモジュールであるpython-twitterを使いたい。
 → pythonモジュールを入れるにはeasy_installを使うと簡単である。
  → easy_installを入れる
 → python-twitterを使うにはpythonのモジュールであるsimplejsonが必要である。
  → simplejsonを入れるためには、Cコンパイラが必要である。
  → minGWを入れる

minGWをインストールする

MinGW - Minimalist GNU for Windows - Browse Files at SourceForge.netから、MinGW-5.1.4.exeをダウンロードする。
f:id:Number6:20090815122622p:image
ダウンロード完了後、インストーラを起動する。
「Next」を連打するとインストールが完了する。
PATHを通すため、環境変数をいじる。
ユーザ環境変数にMINGWPATHを作る。
変数名:MINGWPATH
変数値:c:\MinGW\bin
f:id:Number6:20090815123714p:image
ユーザ環境変数のPATHの値に以下の値を追加する。
変数値:%MINGWPATH%;
f:id:Number6:20090815123713p:image
パスが通っているか確認する。
「スタート」メニューから「ファイル名を指定して実行」を起動する。
「cmd」と入力してコマンドプロンプトを呼び出す。
コマンドプロンプトに「gcc」と入力して「gcc: no input files」と出たらちゃんとパスが通っている。
f:id:Number6:20090815124730p:image
「'gcc' は、内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチ ファイルとして認識されていません。」と出た場合はパスが通ってない=環境変数の設定が間違っているので見直す。
必ず、環境変数を変更して「OK」を押した後にコマンドプロンプトを起動すること。「OK」を押す以前に起動したコマンドプロンプトには変更内容が反映されない。
パスが通っているか確認する方法。
コマンドプロンプトで「PATH」と打ってみると、なんかいろいろ表示される。その中に自分の設定したパスが入っていなかったら環境変数の設定に失敗している。「%MINGWPATH%」がそのまま表示されていたりした場合は、もう面倒なのでPATHの値に「c:\MinGW\bin」を追加してもいい。

easy_installを入れる

以下を参考にする。

まず、ez_setup.pyをダウンロードする。

ダウンロードしたez_setup.pyをC:\直下に移動させておく。
インストール。
コマンドプロンプトを起動する。
カレントディレクトリをc:\に移動させるため、「cd c:\」と打ち込む。
python ez_setup.py」と打ち込む。
f:id:Number6:20090815125919p:image
次にPATHを通す。(何度目だ)
以下を追加。
変数名:PYTHONSCRIPTS
変数値:%PYTHONPATH%\scripts
f:id:Number6:20090815125922p:image
以下を追加
変数名:PATH
変数値:%PYTHONSCRIPTS%;
f:id:Number6:20090815125923p:image
コマンドプロンプトでパスが通っているか確認する。
「easy_install」と打ち込んで、以下のメッセージが出たらパスが通っている。
f:id:Number6:20090815125924p:image

python-twitterを入れる

コマンドプロンプトで以下を入力。
「easy_install python-twitter
simplejsonとpython-twitterが入っているか確認する。
コマンドプロンプトで「python」と打ち込んでインタプリタを起動。
「import simplejson」と打ち込む。
「import twitter」と打ち込む。
特にエラーが出なければ問題なし!
以上でpythontwitterAPIを叩く準備が整った。
次回bot作成編。
大体以下を参考にする。
python-twitterまとめ 〜導入まで - テックノート@ama-ch

pythonでtwitterのbotを作る

目次

  1. コードを置いておくフォルダを作る
  2. 書いて、試す
  3. 定期的に実行する
  4. 遊び方無限大

コードを置いておくフォルダを作る

面倒なのでC直下にコード置き場を作る。(あんまりいいことじゃない)
コマンドプロンプトで以下のコマンドを実行する。

mkdir c:\python

作ったフォルダに移動しておく。

cd c:\python

このコマンドプロンプトは後で使うのでとっておく。

書いて、試す

まずは基本的なコードを書いてみる。
先ほど作ったc:\pythonの下にtest.pyというファイルを作成して以下のコードを書く。
usernameとpasswordの部分はtwitterアカウントのユーザidとパスワードを入れます。

import twitter
api = twitter.Api("username","password")
api.PostUpdate("I am giiku")

保存したら、先ほどのコマンドプロンプトで以下のコマンドを実行。

python test.py

twitterを確認して、恥ずかしいポストがされていれば成功です。
恥ずかしいポストをしたくないかたは、PostUpdate("I am giiku")の「I am giiku」のところを好きな言葉にしておいてください。ただし半角英数に限る。
日本語を扱う方法は後で。

複数ある発言候補から一つ選んでポストする。

test.pyを変更する。

import twitter
import random
list = [
	"naitomea"
	,"daakunaito"
	,"rusifaa"
	,"jiendo"
]
post = random.choice(list)
api = twitter.Api("username","password")
api.PostUpdate(post)

こんな感じ。"naitomea"の前にある空白はTabなので、Tabキーを一回押して入れる。pythonはTabが意味を持つのだが、詳しい話は他で調べてください。
やっぱり保存してコマンドプロンプトに以下を打ち込む。

python test.py

また恥ずかしいポストがされていたら成功。調子に乗って何回も実行すると、お前のタイムラインの闇の力が濃くなって最強になる。連続して実行しても反映されないときがあるが、それはtwitterの仕様で「同じ文面のポストは連続して投稿できない」というのにひっかかっている。listの中からランダムでポスト内容を選んでいるため、同じ文面が続けて出てしまう可能性があるからである。回避する方法はある。面倒だから書かないけど。

定期的に実行する

さて、とりあえず「用意した発言内容リストからランダムで選んでポストする」プログラムが出来た。しかし、このままでは手動で実行しない限り動かない。手動botである。それではbot作成者の方は一日中PCに張り付いて定期的にプログラムを実行しているのだろうか?当然違う。自動で定期的に実行してくれるツールがある。
unix/linux等ならcronというものがあるし、windowsにもatというものがあるが、ここは一つpycronを使ってみようと思う。
pycron
メニューの「Item」から「New」を選ぶと新しい予定作成画面が出る。
f:id:Number6:20090816005825p:image
ここに実行させるプログラムと実行させる時間を設定すればいい。
pythonをインストールした場所:C:\python26
自分で書いたコードの場所:C:\python\test.py
実行させたい時間:1分毎
だとすると以下の感じで良い。
f:id:Number6:20090817164114p:image
ここで入力内容が正しいか確かめるために「Test executior」をクリック。
一瞬DOS窓が出て以下のダイアログが出ればオッケー。何も出ない場合は間違っているので見直そう。
f:id:Number6:20090817164115p:image
これでOKを押すとタスク(実行予定)が出来る。次にこれを設定ファイルとして書き出す。
メニューの「File」から「Save」を選ぶ。おめでとう!これで貴方のタイムラインは一分ごとに暗黒の力に包まれます!

と、とりあえずここまで。

twitterbotに必要な要素。「適当なことを自動でつぶやく」が完成しました。次回は「やらせたいことを実現させるにはどうしたらいいか」をちょっとずつやっていきます。

遊び方無限大

参考資料 - python-twitterのドキュメント
Python: module twitter
やりたいことが出てきたら読めばいいので、今は読まなくてもいい。