栗’s diary

Python勉強中。トレードに役立つようなTwitter bot開発中。暗号通貨の自動売買もやってみたい。

ツイッターbot作成の道(その1)

本記事はブログで書いてた内容を多少の加筆修正の上、転載したものです。

ameblo.jp

前々からツイッターの自作botを作ってみたいなと思ってまして、
昨年から始めたPythonもある程度は使いこなせるようになったという勘違いの下、
今回作ってみた。
将来的には岡三マン(@okasanman)のような速報ツイートbotを目指したい所だが、
まずは他サービスを利用してもできるような定期ツイートbotから。
ちなみにこの手の記事はググったらいくつもヒットするので、
自分にとって良さげなやつをいくつか読めばいいと思うよ。
ということで、結構、備忘録目的に書いちゃう。
以下、Pythonの一定程度(どれくらいだそれ)を理解している事を前提に書いてます。

 

まずは、Pythonのプログラムを手動で実行することでtweetする方法。

qiita.com

を参考にしてサクサクッと。

TwetterのConsumer key等はこんな感じでゲット。

website-planner.com近年、twitterに携帯番号を登録しとかないと無理になったみたいで渋々登録...

出来た。

 

  • GAEでスケジューリング(前段階)

やりたいのはあくまで手動じゃなく自動ツイート。
まずは定期botなのでスケジュール管理する方法。
Twitter bot」でググってみたら最初の方にヒットしたのがGoogle App Engine
まあGoogleならって事でこれを使ってみる事にした。

Google AppEngine/Python入門 - サーバを作ってみよう | adamrocker

Google AppEngineに関しての説明はこれが良かったかな。

ただ後半部分がMacベースの説明だったので、

msitter29.hatenablog.comWindowsベースの私はこっちの方がインストールから使用に関して役に立った。

言われるがままに「Create New Application」からの「Run」、そして「Browse」。
まあ上手くいく。仕組みとしては指定したURLにアクセスするとプログラムが実行。
これを利用して指定したURLを定期的に叩いてツイートプログラムを実行するんだな、うんうん。
ここから加工していく長い旅が始まった。

 

  • Tweepy(失敗)

で、改めて「Twitter bot」でググって目に付いたのがtweepyというモジュールを使ってのプログラミング。

d.hatena.ne.jpこのサイトを応用すればほとんど完成じゃないか、そう思いましたよ...。

GAEでtweepyを利用するためにはtweepyのソースコードもGAE上にあげる必要があります。

なるほど。そういう作業が必要なのね。アップロード、更新。
「No module named A」

あぁ、まだ足りてないか。ググってダウンロードしてアップロード、更新。
「No module named B」

あぁ、こんな感じで足りてないやつアップロードしていったら上手くいくかな。
アップロード、アップロード、アップロード...
早くエラーなくなれよ...
「No module named _ssl

???
どれ入れたらいいの?えっ?えっ?上手くいかない。
ググる

qiita.com

The Python 2.7 runtime includes some third-party modules. Some of these are available by default; others are only available if configured. You can specify which version you want to use.

うわー、今までと違う展開。まあ、仰せのとおりに。

「File "C:\Program Files\Google\google_appengine\google\appengine\dist27\socket.py", line 73, in <module>
ImportError: cannot import name RAND_egd」

えっ、知らんがな...
ちなみにsocket.pyをから無理やりRAND_egdを削除してみても同じエラー。

ここに書いてるようにはサクッといかない...。

qiita.com
tweepy保留...。

 (続く)

 

みんなのPython 第3版

みんなのPython 第3版