作業記録

作業メモなので、頭の中に思いついた順に書いていっているので文章のまとまりはないでs

5/3

今年のGWは GoogleAppEngineでなんかするぞーとは決めていたものの、
何をやるかは決めていなかったので、周りでTwitter-bot作りが流行っていたので、
Twitter4j使ってbot動かそうとする。

⇒ローカルでは動くのに、サーバからcronで叩くと動かない
⇒cronの設定うまくいってないのかな? と思いとりあえず断念。
(実はcronはうまく動いてたけど、別問題だったことが後で判明する

5/5

botいまさら作っても、もう既存に優秀なbotがたくさんあるし、使わないだろうなーと思う。
⇒よしじゃあ、携帯向けのクライアント作ろっか!と思い立つ。
(mtwitter.comはページ遷移で挙動おかしいところあるし、何よりもAPI制限なし&&アイコンがあるクライアントが欲しい!
んでAPI制限ひっかからないやつを使いたい

⇒途中 JDOの設定で結構手こずる(JDO使うの初めてだったので

⇒さっそくパケットキャプチャしながらスクレイピングのクライアント作る
⇒ HttpURLConnection.setFollowRedirects(false)でSecurityManager()でエラー
      ⇒GAEは色々制限あるらしいと聞いていたけどこれか!
      ⇒Googleが推奨してきてる方法 (URLFetchでアクセス)とやらを試す
⇒こちらではリダイレクトがうまくいく
⇒ローカルで動いた!

当時のPOST

自作くらいあんt
2:09 AM May 6th mobile webで

@nezike セッション情報知っちゃうけど。。
2:14 AM May 6th webで nezike宛

@nezike DMおくた
2:16 AM May 6th webで

動かないw これはひどい
2:20 AM May 6th webで

ローカルだといけるんだけどな、、
2:31 AM May 6th webで

GAEからアクセスすると403…
3:11 AM May 6th mobile webで

というわけで、ローカルで動くけど、GAEからアクセスするとだめぽ。

5/6

5/6 Google App Engine 対応 の Twitter4J 2.0.1 リリース

きゃーーー、5/3に動かなかったのはこれなのかー。
というわけで、

  • クッキーセッションを手打ちして自分で登録
  • 取得系はスクレイピング / 投稿系はTwitterAPI

にすればAPI制限を回避しつつ動かせることは判明。確認済み。
(でもクッキーセッションを手打ちはさすがに微妙w


まとめ

  • GAE/JのセキュリティマネージャーはGoogleオリジナルのものを積んでいる模様。
  • Twitterスクレイピングは、ローカルで可能だがGAEからアクセスするとダメ(原因はhostかUser-Agentかなぁ(確認とれず))
  • TwitterAPI使えばいけるっぽい

今後

人のパスワードを(GAEのサーバとはいえ)保存するのは嫌なので、携帯版Twitterはやらないかなぁ。。
(自分専用クライアントなら作るかもしれんが、スクレイピングでない携帯版Twitterクライアントは
既にいくつか素晴らしいのがあるので、車輪の再開発は嫌だから)
(それOAuthでできるよ?なのかな、わからにゃー

なので、他のプログラム書いていこうかしらん。