2013-12-23

 昼ごろまで作業、午後からアルバイトに向かったら誰も居らず作業未遂。夕方に帰宅して近所のラーメン屋に行ってラーメン炒飯セットを食べて(値段そこそこ味そこそこの無難な感じ。ラーメンだけだと安いのでふらっと入るにはちょうどいい)、夜はここ数日間ほど時間をかけていたbot作りの作業が一段落した。ちょっと経緯を書く。

 

 1.PHPのTwitterOauthでUserStream非対応のものを作った(ほとんど:http://www.sdn-project.net/labo/oauth.htmlhttp://qiita.com/rana_kualu/items/357a031c0453a3538ad3などを参考にしました。ありがとうございます)。レンタルサーバに置いたので定期ポストくらいしかできない(と思う)。UserStreamに対応させようとしたのだけどうまくいかない(サンプルコードが見つからないと何もできない)。

 2.C#のTwitterizer?とかいうのでUserStream対応のものを作ろうとするも挫折。VisualStudio2010ExpressがNugetに対応していないせいできちんと参照設定ができずにうまく動作しないのか、そもそも見つけたサンプルコードが間違っているのか、面倒なのでスキップ。

 3.どうせ自然言語処理的なことをしようとするのだからPythonだろうと思って初導入。v2.x台とv3.x台の互換性がいまいちということでちょっと苦戦。先にv3.3を入れたらprintに括弧が必要だのtweepy導入時にsimplejsonを探しに行こうとするだのうまくいかないのでv2.7をインストールし直した。コンソール出力するUserStreamのサンプルコードを見つけたので(参考:http://mba-hack.blogspot.jp/2013/05/twitteruser-stream.html ありがとうございます)これに乗っかって記述。responseのstatusの中身がよくわからないのでPHPのvar_dumpと同じことがしたいと思いここ(http://tomoemon.hateblo.jp/entry/20090921/p1 ありがとうございます)を参考にさせて頂いた。かなり助かりました。

 引っかかったのはstatusの中身を引っ張りだす時にstatus.target_object.textなどと呼ぼうとするとエラー('dict' object has no attribute 'text')を吐かれる点(status.author.screen_nameなら直接呼べたので、一層混乱した)。原因は明確にはわからなかったのだけど、おそらくそれより手前の階層にありそうな名前を指示しようとするのが良くないみたいで、status.target_object['text']とするとうまくいった。あとはこれから細々と(こまごまと!)機能追加をするかしら。

では。

 

広告を非表示にする